我想创建一个布局:2行1列。第一行应占据窗口的70%高度,第二行应占据窗口的30%。我通过使用weightyGridBagConstraints属性来实现。

但是我对组件的宽度有疑问,因为当我调整应用程序窗口的大小时,组件保持在中心,其宽度是恒定的,并且在组件的左右两侧都有一个空格(即使我设置了fillBOTH)。当我更改窗口的高度时,不会发生此问题(组件的尺寸调整得很好,并充满了窗口的整个高度)。

在我的限制之下:

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教程中有关权重约束的部分。

09-05 15:55