2011-08-29 55 views
3

我有一個JFrameGridBagLayout。 weightx和weighty值被分配了不同的非零值,並且GridBagConstraints.fill = GridBagConstraints.BOTH。我在一個單元格中嵌套了一個JPanel,並給它一個GridBagLayout。向嵌套JPanel添加組件時,嵌套JPanel所在位置的單元格大小在所有側缺少父級佈局。不使用插入和填充。
我該如何解決這個問題?謝謝。 這是GridBagConstraints的值的示例:與GridBagLayout嵌套的JPanel

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之前的屏幕截圖:
enter image description here

這將各組件添加到嵌套的JPanel後的屏幕截圖:
enter image description here

+0

你能包含代碼嗎?你能描述一下你想要發生什麼嗎? – eon

回答

4

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

+0

@ Ken Blair:我想在添加嵌套JPanel的組件前,讓父級的佈局保持原定義。謝謝 – FadelMS

2

這是在這麼晚的日期可能是完全沒有用的,你的,但是......

看起來你可能同時使用鋪設了兩個新的按鈕時。

如果樹上的preferredSize.width是你想要的內板的寬度,
和你想要的兩個新按鈕各自樹的寬度的一半,

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

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