Java 每列具有不同调整大小规则的按钮摆动网格

Java swing grid of buttons with different resize rules per column

我正在尝试制作一个类似于表单的 UI 面板(我没有使用 GUI 设计器)。左侧包含标签,右侧包含文本字段等。我想制作它,以便在调整大小时,只有正确的大小(文本字段,改变形状)。

目前,我正在使用 GridLayout(x, 2) 每行一个 JLabelJTextField

所以在调整大小时,我想做到这一点
来自 [(JLabel)|(JTextField)]
[(JLabel)|( JTextField )]
不是 [( JLabel )|( JTextField )].

此外,当然,我需要确保所有行始终匹配。

GridLayout 不能用于此。使用 GridBagLayout 或更易于使用的布局管理器,例如 MigLayout。

如果您想使用单个布局管理器,您可以使用 GridBagLayout

对于第二列中的组件,您可以将 weightx 约束设置为 1.0f。这意味着任何额外的 space 将只分配给此组件。

阅读 How to Use GridBagLayout 上的 Swing 教程部分。 Specifying Constraints 上的主题将更详细地解释此约束的工作原理。