Swing: менеджер компоновки потока столбцов?

Я ищу 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, который я могу использовать, или подкласс, чтобы сделать что-то вроде этого?


edit: это очень похоже на этот другой вопрос о вертикальном макете , но в этом макете высота компонента является ограничением , а у меня ширина компонента является ограничением.

5
задан Community 23 May 2017 в 10:30
поделиться