Tôi đang cố sắp xếp hai bộ nút cho GUI máy tính. Mỗi người sử dụng GroupLayout để tạo ra chúng. Một bộ là số (và "."), Cái còn lại dành cho các nút thao tác. Điều này về cơ bản hoạt động nhưng nếu một trong các nút có chiều dài gấp đôi (ví dụ như nút bằng trên bộ hoạt động của tôi) nó ném các nút khác ra khỏi dòng. Tôi sẽ sử dụng bộ thao tác làm ví dụ. Có hai cột và bốn hàng nút. Hàng cuối cùng chỉ có một nút - bằng. Tôi muốn làm cho chiều dài tăng gấp đôi này trải dài trên cả hai cột. Tại thời điểm này, nó chỉ đơn giản là đẩy cột thứ hai đến cuối của nó khi tôi muốn cột thứ hai ngồi trên nó.Java - Trộn kích thước thành phần trong GroupLayout
Đây là mã cho bố cục - operLayout là tên của bố cục cho các phép toán, dấu ngoặc trái và phải trên hàng đầu tiên, + và - vào thứ hai, * và/trên thứ ba và bằng trên hàng cuối cùng . Mỗi nút có kích thước tối thiểu được đặt ở nơi khác (tất cả chúng đều giống nhau trừ ngoại lệ bằng hai lần).
operLayout.setAutoCreateGaps(true);
operLayout.setAutoCreateContainerGaps(true);
operLayout.setVerticalGroup(operLayout
.createSequentialGroup()
.addGroup(
operLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(leftBracket)
.addComponent(rightBracket))
.addGroup(operLayout.createParallelGroup().addComponent(add).addComponent(subtract))
.addGroup(operLayout.createParallelGroup().addComponent(multiply).addComponent(divide))
.addGroup(operLayout.createParallelGroup().addComponent(equals)));
operLayout.setHorizontalGroup(operLayout
.createSequentialGroup()
.addGroup(
operLayout.createParallelGroup().addComponent(leftBracket).addComponent(add)
.addComponent(multiply).addComponent(equals))
.addGroup(
operLayout.createParallelGroup().addComponent(rightBracket).addComponent(subtract)
.addComponent(divide)));
Tôi hiểu tại sao điều này xảy ra nhưng tôi không chắc chắn cách sắp xếp. Có cách nào đơn giản không? Hay tôi nên thay đổi cách tôi đang làm nó? Cảm ơn
Tôi hoan nghênh bạn cho lựa chọn 'GroupLayout' cho tác vụ này. Tôi tin rằng cách bố trí này là mạnh nhất để đặt ra các biểu mẫu chuẩn. Nó dễ dàng bị bỏ qua vì nó rất phức tạp để sử dụng. Sau khi học cách nó hoạt động, tôi sử dụng nó gần như độc quyền. –
có thể định dạng lại mã của bạn? Hiện tại, y nó không thể đọc được. – ArtB
có, xin vui lòng, mặc dù ai đó có thể đã đánh bại bạn với nó. Cảm ơn bạn @ErickRobertson, tôi biết ý bạn là gì, có vẻ phức tạp nhưng một khi bạn hiểu nó, nó thực sự hữu ích! – PatrickJBC