Java布局管理器:寻找类似于GTK水平和垂直框的布局管理器

3

我在玩GTK布局时有些得意了,现在我开始用GTK的术语思考窗口布局,但找不到合适的LayoutManager可供使用。

我特别需要一个用Java编写的LayoutManager,以便在基于Swing的应用程序中使用,其行为几乎与GTK的水平和垂直框完全相同。

特别是,我希望子小部件固定在容器的非轴尺寸上,并且还可以选择让某些组件占用额外空间(即GTK中的“扩展”选项),而其他小部件仅占用它们在轴上的最小大小。

是否有适合此要求的布局管理器?


我不太熟悉GTK,但MigLayout库非常灵活且易于使用。http://www.miglayout.com/ ..希望有所帮助。 - laher
4个回答

1

在Java中,最可配置的布局管理器是GridBagLayout管理器。它允许您使用gridxgridy指定网格中的位置,并使用weightxweighty沿该轴分配额外空间。

GridBagLayout相当繁琐,因此我建议在使用之前阅读教程,但我从未发现过无法使用GridBagLayout构建的布局。


1
你应该使用嵌套布局。如果你理解Java中的网格框流边框布局,那么你可以将它们嵌套以创建任何你想要的内容。如果我了解你想要如何布局组件,则会给你一些Java代码来完成它。顺便说一句,你可能想尝试mig布局http://www.miglayout.com/。我自己不使用它,因为我已经知道如何使用Swing布局,但它是一个不错的库。

0

您可以使用BoxLayout - Oracle教程 - 和javax.swing.box来创建一个具有BoxLayout的组件。

它可以管理垂直和水平布局。


除非我漏掉了非常重要的东西,BoxLayout从来没有强制所有小部件具有容器的离轴尺寸。根据您列出的教程,当没有小部件具有最大尺寸时,它应该按照我想要的方式进行,但实际上并没有。有什么建议吗? - Raceimaztion

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接