3

好吧,我玩弄了 GTK 布局,把自己宠坏了,现在我开始考虑用 GTK 的术语来考虑窗口布局,但找不到合适的 LayoutManager 来使用。

我正在寻找一个用 Java 编写的 LayoutManager,用于基于 Swing 的应用程序,其行为几乎与 GTK 的水平和垂直框完全相同。

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

有没有一个布局管理器可以做到这一点?

4

4 回答 4

1

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

GridBagLayout 非常繁琐,所以我建议在使用之前阅读教程,但我从来没有找到我无法使用 GridBagLayout 构建的布局。

于 2011-05-15T08:02:38.163 回答
1

您应该使用嵌套布局。如果您了解 java 中的网格框流边框布局,这很容易,那么您可以嵌套它们来制作您想要的任何东西。如果我了解您想要如何布局组件,我会给您一些 java 代码来完成它。顺便说一句,您可能想尝试 mig 布局http://www.miglayout.com/。我自己不使用它,因为我都准备好知道如何使用摇摆布局,但它是一个不错的库。

于 2013-02-13T19:31:34.267 回答
0

虽然我自己并没有按照您描述的方式使用 GTK,但这听起来像是我实现 MSBLayout 的要求:

http://msblayout.sourceforge.net/javadoc/de/winterdrache/layout/MSBLayout.html

它结合了其他海报已经提到的 BoxLayout 和 GridBagLayout 的属性,但使用起来要容易得多。

于 2012-01-03T22:13:01.553 回答
0

您可以将 BoxLayout - Oracle 教程- 和 javax.swing.box 用于具有 BoxLayout 的组件。

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

于 2011-05-15T12:44:27.603 回答