【问题标题】:Group 2 components in FlowLayout in JavaJava 中 FlowLayout 中的第 2 组组件
【发布时间】:2014-12-07 21:19:53
【问题描述】:

我正在 JPanel 中使用 FlowLayout Manager。我有很多 Label 和 TextField/JComboBox 组合。喜欢

当 JPanel 调整大小时

我已经在我的 JPanel 上设置了 FlowLayout,并且每当调整面板的大小时,我希望它将我的 Label+Textfield 一起带到下一行,而不是将组件一个接一个地带到下一行。

是否可以组成组或类似的东西,所以我的每个标签+文本字段都被视为单个组件,当面板调整大小时,这两个组件一起下降。

我知道的一种方法是将我的每个标签+文本字段放在每个单独的 JPanel 中,然后将这些 JPanel 放在我的主 FlowLayout JPanel 中,但是我将不得不做很多工作,因此想知道 java 中是否有一些选项为此?

【问题讨论】:

  • “想知道java中是否有这个选项?..” GroupLayout。例如。 this answer 中的工厂方法可以生成标签和字段的两列布局。将其中两个并排放置,工作就完成了。
  • @AndrewThompson 但是我在我的 JPanel 上使用 FlowLayout,因为 Panel 是可调整大小的,那么你想在哪里使用 GroupLayout?

标签: java swing layout layout-manager


【解决方案1】:

Flowlayout 是在您的情况下使用的错误布局。

可能最好的布局是 GridBagLayout。您可以为文本字段定义一致的宽度,并为标签定义一致的锚定(即锚定到右侧)。

以下是如何设置“模型”标签的示例:

GridBagConstraints gbc = new GridBayConstraints();
gbc.gridx = 2;
gbc.gridy = 1;
gbc.anchor = GridBagLayout.EAST
panel.add(modelLabel, gbc);

【讨论】:

  • 谢谢奥利弗。效果很好。一如既往,你给出了很好的答案。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2013-10-28
  • 2019-02-13
  • 1970-01-01
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多