簡體   English   中英

嵌套JPanel與GridBagLayout

[英]Nested JPanel with GridBagLayout

我有一個帶GridBagLayoutJFrame weightx和weighty值被賦予不同的no-zero值,GridBagConstraints.fill = GridBagConstraints.BOTH。 我在其中一個單元格中嵌套了一個JPanel,並給它一個GridBagLayout。 將組件添加到嵌套的JPanel時,嵌套的JPanel所在的單元格大小會在所有方面增長,從而缺少父級的布局。 不使用插入和填充。
我該如何解決這個問題?謝謝。 這是GridBagConstraints值的示例:

GridBagConstraints treePanCon = new GridBagConstraints();
treePan.setLayout(treePanGridbag);
treePanCon.fill = GridBagConstraints.BOTH;
treePanCon.weightx = 0.5;
treePanCon.weighty = 1;
treePanCon.gridx = 0;
treePanCon.gridy = 0;
treePanCon.gridwidth = 1;
treePanCon.gridheight = 1;

這是在向嵌套JPanel添加組件之前的屏幕截圖:
在此輸入圖像描述

這是將組件添加到嵌套JPanel后的屏幕截圖:
在此輸入圖像描述

這正是應該發生的事情。 請解釋您正在尋找的行為。 另外,J2SE提供的布局管理器並不理想。 在過去的生活中完成了大量的Swing工作,我強烈建議您查看JGoodies表格: http ://www.jgoodies.com/freeware/forms/。 查看白皮書,它易於使用,比GridBag更直觀。

在這個較晚的日期,這對你來說可能毫無用處,但......

看起來你在布置兩個新按鈕時可能會使用BOTH。

如果樹上的preferredSize.width是內部面板所需的寬度,
你想要兩個新的按鈕,每個按鈕的寬度是樹的一半,

將preferredSize.width設置為樹的preferredSize.width的一半,
並在兩個按鈕上使用NONE。

在內部面板的樹上使用VERTICAL。 在外部面板的內部面板上使用VERTICAL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM