Tôi đang cố gắng để có được Giao diện của một JDialog
của tôi để phù hợp với một giao diện cụ thể mà tôi đang chuyển sang Java, tôi đã sử dụng một vài LayoutManager trước đây với thành công lớn. để làm việc này. Mục tiêu của tôi là có mặt bên phải (Đông) của JDialog
chứa nút "Tìm tiếp theo" và "Hủy" trong thứ tự từ trên xuống và sau đó thêm bất kỳ khoảng trống nào bên dưới sao cho hai nút luôn ở trên cùng của JDialog
nhưng vì lý do nào đó, BoxLayout
liên tục bỏ qua bất kỳ nỗ lực nào đang thay đổi (đây là nơi tôi bị mất) chiều rộng của JButton
. Mã sau.Tại sao BoxLayout không cho phép tôi thay đổi chiều rộng của JButton nhưng hãy để tôi thay đổi chiều cao?
JButton findNext = new JButton("Find Next");
JButton cancel = new JButton("Cancel");
cancel.setPreferredSize(new Dimension((int)findNext.getPreferredSize().getWidth(),
(int)cancel.getPreferredSize().getHeight()));
JPanel example = new JPanel();
example.setLayout(new BoxLayout(example, BoxLayout.Y_AXIS));
example.add(findNext);
example.add(cancel);
example.add(Box.createGlue());
Bất kể tôi cố gắng gì, cancel
luôn giữ nguyên kích thước bình thường. Tôi đã thử setMinimumSize()
và setMaximumSize()
với các thông số giống như setPreferredSize
không có may mắn. Tôi thậm chí đã thử cancel.setPreferredSize(new Dimension(500, 500));
và chiều cao nút là điều duy nhất được điều chỉnh, nó vẫn giữ lại chiều rộng mặc định nó đã được đưa ra.
Để xóa mọi câu hỏi, dưới đây là hình thức của nó (bây giờ tôi đã hoàn thành nó) và bạn sẽ thấy các nút "Tìm tiếp theo" và "Hủy" không có cùng kích thước.
Tôi đã thêm một liên kết đến câu hỏi chính của JDialog đã hoàn thành để bạn có thể hiểu rõ hơn về vấn đề của mình. –
@Tim Cảm ơn bạn, tôi đã sửa đổi mã để đặt phần thích hợp ở đây, xin lỗi tôi đã bỏ lỡ dấu ngoặc đơn. –
@izuriel - Không sao, tôi chỉ sao chép nó qua Eclipse để chơi với nó một chút và nhận thấy nó bị thiếu, vì vậy muốn sửa nó cho người khác. :) –