我想创建一个布局:2行1列。第一行应占据窗口的70%高度,第二行应占据窗口的30%。我通过使用weighty
的GridBagConstraints
属性来实现。
但是我对组件的宽度有疑问,因为当我调整应用程序窗口的大小时,组件保持在中心,其宽度是恒定的,并且在组件的左右两侧都有一个空格(即使我设置了fill
到BOTH
)。当我更改窗口的高度时,不会发生此问题(组件的尺寸调整得很好,并充满了窗口的整个高度)。
在我的限制之下:
firstConstraints.gridx = 0;
firstConstraints.gridy = 0;
firstConstraints.weighty = 0.7;
firstConstraints.fill = GridBagConstraints.BOTH;
secondConstraints.gridx = 0;
secondConstraints.gridy = 1;
secondConstraints.weighty = 0.3;
secondConstraints.fill = GridBagConstraints.BOTH;
最佳答案
我认为您还需要:
gbc.weightx = 1.0;
请参阅How to Use a GrigBagLayout的Swing教程中有关权重约束的部分。