gpt4 book ai didi

java - Swing:列流布局管理器?

转载 作者:搜寻专家 更新时间:2023-10-31 20:23:12 25 4
gpt4 key购买 nike

我正在寻找一个 LayoutManager,它可以让我在容器(例如 JPanel)中按列显示一组组件,大致如下所示。

  • 容器的宽度是输入约束。
  • 容器的首选高度是宽度的函数,可以是:
    • 当布局在多列中时,使组件适合宽度所需的最小高度。
    • 使组件适合单列所需的最小高度。
  • 组件将按报纸栏顺序放置,从上到下,然后从左到右。

这是一个显示 13 个组件的示例(低技术文本显示)。如果它们可以放在 3 列中,它们将如下所示:

Foo1    Foo6     Foo11   
Foo2 Foo7 Foo12
Foo3 Foo8 Foo13
Foo4 Foo9
Foo5 Foo10

如果太宽,它们看起来像这样:

Foo1    Foo8 
Foo2 Foo9
Foo3 Foo10
Foo4 Foo11
Foo5 Foo12
Foo6 Foo13
Foo7

如果太宽,它们看起来像这样:

Foo1     
Foo2
Foo3
Foo4
Foo5
Foo6
Foo7
Foo8
Foo9
Foo10
Foo11
Foo12
Foo13

有没有我可以使用的预先存在的 LayoutManager 或子类来做这样的事情?


编辑:这非常接近 this other question about vertical layout , 但该布局将组件高度作为约束条件,而我的布局将组件宽度作为约束条件。

最佳答案

另一个允许这种布局的组件是 JList ,其中包含一个 VERTICAL_WRAP,它“指示报纸样式布局,其中单元格先垂直然后水平流动。”根据您的需要,一个合适的 ListCellRenderer,提到 here , 可能就足够了。

关于java - Swing:列流布局管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6311772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com