2012-04-12 20 views
5

Có thể làm cho phía đông (hoặc phía tây) của BorderLayout trải rộng trên toàn bộ bảng điều khiển (bao gồm phía bắc/nam) không?Java BorderLayout stretch east

enter image description here

Trả lời

7

Chỉ cần loại bỏ Tây và Đông từ bảng điều khiển này và tạo ra một mới "cha mẹ" bảng điều khiển:

JPanel newPanel = new JPanel(); 
newPanel.setLayout(new BorderLayout()); 

newPanel.add(westernPanel, BorderLayout.WEST); 
newPanel.add(yourOldPanel, BorderLayout.CENTER); 
newPanel.add(eastenPanel, BorderLayout.EAST); 
+0

trình như một say mê, cảm ơn. – Reinard

1

Không trực tiếp, nhưng bạn có thể có một cách bố trí biên giới không có "đông" lồng trong vòng bố cục có Đông hiện tại của bạn ở vị trí chính xác ... Có ý nghĩa không?

TL; DR: số

2

không thể với đơn JPanel xếp chồng bởi BorderLayout

1) bằng cách sử dụng hai JPanels, nơi NORTH, WEST, CENTERSOUTH khu vực có thể được đặt vào 1st JPanel (frame.add(1stPanel, BorderLayout.CENTER)) và đồng bằng 2nd JPanel đến frame.add(2ndPanel, BorderLayout.EAST),

2) bạn có thể sử dụng BoxLayout cho khu vực trong EAST từ container

3) chút phức tạp có thể được sử dụng GridBagLayout hoặc MigLayout (trong trường hợp này)

Các vấn đề liên quan