1

我想为应用程序制作一个登录栏,但我不知道如何组织一系列 JLabels 和 JTextField,以便它们在水平网格中组织,而无需调整这些相同组件的大小以适合每个单元格。我还想确保组件组的大小不会调整到某个宽度以下。如何做到这一点?

编辑:谢谢大家的回答。稍后我会看看 MigLayout 和 SpringLayout。由于时间限制,我将不得不使用可视化编辑器并使用空布局。组件的位置和尺寸必须手动调整,但至少它们保持原样。这是一张图片,显示了我想做的事情。

吧 http://img145.imageshack.us/img145/7356/bargw.png

4

3 回答 3

3

使用MigLayout作为您的布局管理器,它非常灵活,并且很容易支持您的要求。您可以设置大小限制。如果您需要任何进一步的帮助,请使用 Swing 和 MigLayout 发布一些示例代码,显示您正在尝试做的事情,然后我会建议您如何做您想要实现的目标。

您可能需要一些“增长”的额外单元格来填充剩余空间。这可以通过列约束来实现,方法是在列之间插入“push”(由 [..] 指定)以扩大间隙。在这种情况下,您不需要任何占位符组件。(即,[pref!]10px[40px::]push[pref!]10px[40px::])

于 2010-05-22T18:51:50.913 回答
2

您必须使用不同的布局。FlowLayout 或 BoxLayout 将适用于您的情况,但我建议 MigLayout 只是因为它将满足您的所有需求并替换所有其他需求。

于 2010-05-22T18:52:04.530 回答
2

查看 Swing 教程中关于使用布局管理器的部分。

SpringLayout 有一个例子可以做到这一点。

GridBagLayout 更难使用,但也支持行/列类型布局。

最后,您仍然可以使用 GridLayout。只需先将文本字段添加到 JPanel,然后面板会增长,但文本字段不会。

于 2010-05-22T18:54:16.160 回答