我有一个JFrameGridBagLayout。 weightx和weighty值分配了不同的非零值,并且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易于使用且直观得多。

10-07 18:58