我正在使用 Java 开发更大的 GUI,我对布局管理器感到愤怒。
我有一个“设置面板”,其中包含可变数量的 JComponents(标签、按钮、JSpinners、JSliders 等)。我只想要以下内容:
JLabel <-> JComponent
JLabel <-> JComponent
JLabel <-> JComponent
…
我的 Panel 有 500px 的大小,所以有足够的空间容纳很多组件。不幸的是,GridLayout 总是将组件的大小拉伸到整个面板,即使我为每个组件设置了 MaximumSize。如果只有两个高度为 250px 的按钮,这看起来很愚蠢。
我试过 FlowLayout,但我想不出一种正确制作新行的方法。我尝试了 BoxLayout.Y_AXIS,但组件始终居中,标签和组件不在同一行。
有人知道 LayoutManagers 正确处理这个问题的好方法吗?
原文由 Blackbam 发布,翻译遵循 CC BY-SA 4.0 许可协议
其他布局的替代方案可能是将您的面板与 GridLayout 放在另一个面板中,该面板是 FlowLayout。这样您的间距将保持不变,但不会扩展到整个可用空间。