我正在尋找一個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,但該佈局具有元件高度是約束,而我有分量的寬度是一個約束。
謝謝,但GridBagLayout和其他面向網格的佈局具有靜態網格大小。我需要動態地計算網格大小。 – 2011-06-10 20:41:59
你嘗試過自己的演示嗎?它水平流動,而不是垂直流動。(僅供參考,如果您可以通過自己調整JFrame的大小來交互式地調用setSize(),那麼沒有太多意義) – 2011-06-10 21:40:37