Как уменьшить высоту строки Miglayout до нуля при скрытии компонентов - PullRequest
5 голосов
/ 02 февраля 2012

У меня есть простой диалог Miglayout со строками, состоящими из JLabels и JTextFields.Видимость ряда компонентов устанавливается в зависимости от обстоятельств.Однако, когда они скрыты, высота строки остается той же самой, оставляя пустую область.

Я установил минимальную высоту строки в 0px, а также для других строк установлено значение 'grow', но это, похоже, не помогает.Конечно, если строка может иметь высоту 0px и ее содержимое скрыто, то она должна уменьшиться, не так ли?Очевидно, я что-то упускаю!

Любая помощь очень ценится.

Ответы [ 3 ]

5 голосов
/ 09 октября 2012

Вы можете установить режим скрытия макета, чтобы невидимые компоненты не влияли на макет.

С http://migcalendar.com/miglayout/cheatsheet.html:

Устанавливает режим скрытия по умолчанию для макета. Этот режим скрытия может быть переопределен ограничением компонента. В режиме скрытия указывалось, как диспетчер компоновки должен обрабатывать невидимый компонент. Режимы: 0 - по умолчанию. Означает, что невидимые компоненты будут обрабатываться точно так, как если бы они были видимы. 1 - Размер невидимого компонента будет установлен на 0, 0. 2 - Размер невидимого компонента будет установлен на 0, 0, а промежутки также будут установлены на 0 вокруг него. 3 - Невидимые компоненты вообще не будут участвовать в макете и, например, не будут занимать ячейку сетки.

3 голосов
/ 03 февраля 2012

Почему я могу только найти ответы на свои проблемы после Я размещаю запросы в Интернете?Кажется, я пропустил следующее QA: Force MigLayout сжимается как GridBagLayout для скрытых объектов

1 голос
/ 03 февраля 2012

Вам может потребоваться вызвать panel.revalidate() для размещения компонентов после изменения их видимости.

...