Java LayoutManager: Ищем LayoutManager, похожий на горизонтальные и вертикальные блоки GTK - PullRequest
3 голосов
/ 15 мая 2011

Хорошо, я испортил себя, играя с макетами GTK, и теперь я начал думать о макетах окон в терминах GTK и не могу найти подходящий LayoutManager для использования.

Я специально искал LayoutManager, написанный на Java, для использования в Swing-приложении, которое работает почти так же, как горизонтальные и вертикальные блоки GTK.

В частности, я хочу, чтобы дочерние виджеты были зафиксированы вне размера контейнера, а также возможность, чтобы определенные компоненты занимали дополнительное пространство (опция "развернуть" в GTK), в то время как другие виджеты занимают только их минимальный размер по оси.

Есть ли менеджер раскладок, который будет это делать?

Ответы [ 4 ]

1 голос
/ 13 февраля 2013

Вы должны использовать вложенные макеты. Если вы понимаете макеты границ сетки сетки в Java, что легко, то вы можете вкладывать их, чтобы сделать все, что вы хотите. Я бы дал вам немного кода Java, чтобы сделать это, если бы я понял, как вы хотите расположить свои компоненты. Кстати, вы можете попробовать миг макет http://www.miglayout.com/. Я не использую его сам, потому что я все готово знать, как использовать макеты качелей, но это хорошая библиотека.

1 голос
/ 15 мая 2011

В Java наиболее конфигурируемым менеджером компоновки является менеджер GridBagLayout. Это позволяет вам указать положение в сетке, используя gridx и gridy, и как дополнительное пространство выделяется вдоль этой оси, используя weightx и weighty.

GridBagLayout довольно неудобен, поэтому я бы предложил прочитать учебник перед использованием, но я никогда не находил макет, который не смог бы создать с помощью GridBagLayout.

0 голосов
/ 04 января 2012

Хотя я сам не использовал GTK, как вы описываете, это звучит как требования, к которым я применил MSBLayout:

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

Он объединяет свойства BoxLayout и GridBagLayout, которыедругие постеры уже упоминались, но их гораздо проще использовать.

0 голосов
/ 15 мая 2011

Вы можете использовать BoxLayout - Учебник Oracle - и javax.swing.box для компонента с BoxLayout.

Может управлять вертикальной и горизонтальной разметкой.

...