如何使用 GridLayout 设置组件大小?有没有更好的办法?

新手上路,请多包涵

我正在使用 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 许可协议

阅读 961
1 个回答

其他布局的替代方案可能是将您的面板与 GridLayout 放在另一个面板中,该面板是 FlowLayout。这样您的间距将保持不变,但不会扩展到整个可用空间。

原文由 jzd 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题