[英]Layout for two JLists separated by a “middle” panel? (Java Swing)
我正在使用BoxLayout在水平方向上連續布置3個組件-兩個JList(J1和J2)和一個介於(X)之間的JPanel。
---------------
| |
| |
| J1 X J2 |
| |
| |
---------------
我遇到的問題是BoxLayout使每一列的大小相等,但是我想要的是X成為其最小大小,而J1和J2占據所有可用的水平空間。 我怎樣才能做到這一點? 基本上,我想要的外觀是這樣的。
在JList之間放置水平膠水:
box.add(Box.createHorizontalGlue())
您應該使用setPreferredSize
和setMinimumSize
方法。 這些可以與此方法結合使用,以使窗格大小基於屏幕大小:
screen Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
盡管您可能只是將窗口設置為固定大小。
對於列表,您應該將項目添加到JPanel
,根據對象數設置面板的大小,然后使用setViewPort
將JScrollPane
視圖設置為該JPanel
以確保滾動窗格的大小正確。
JPanel panel_20 = new JPanel();
tabbedPane_2.addTab("New tab", null, panel_20, null);
panel_20.setLayout(new BoxLayout(panel_20, BoxLayout.X_AXIS));
JPanel panel_24 = new JPanel();
panel_24.setBorder(new EmptyBorder(3, 3, 3, 3));
panel_20.add(panel_24);
panel_24.setLayout(new BorderLayout(0, 0));
JList list_7 = new JList();
list_7.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
panel_24.add(list_7);
JPanel panel_25 = new JPanel();
panel_20.add(panel_25);
panel_25.setLayout(new BoxLayout(panel_25, BoxLayout.Y_AXIS));
JButton btnNewButton_4 = new JButton(">");
panel_25.add(btnNewButton_4);
JButton btnNewButton_5 = new JButton("<");
panel_25.add(btnNewButton_5);
JPanel panel_26 = new JPanel();
panel_26.setBorder(new EmptyBorder(3, 3, 3, 3));
panel_20.add(panel_26);
panel_26.setLayout(new BorderLayout(0, 0));
JList list_8 = new JList();
list_8.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
panel_26.add(list_8, BorderLayout.CENTER);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.