Лучший способ свернуть невидимые компоненты Java Swing
У меня есть некоторые компоненты Java Swing, чьи visible
свойство имеет значение false. Когда они не видны, я не хочу, чтобы они занимали место в макете. Каков наилучший способ сделать это?
Я хочу подражать поведению WPF Visibility.Collapsed
,
РЕДАКТИРОВАТЬ: я использую MiGLayout. Как описывает kiheru в ответе, проблема, с которой я столкнулся, связана с MiGLayout, а не с компоновками Swing в целом.
1 ответ
Решение
MigLayout
по умолчанию обрабатывает невидимые компоненты так же, как видимые компоненты. Вам необходимо указать hidemode
для другого вида поведения. Из документации возможны следующие значения:
- По умолчанию. Означает, что невидимые компоненты будут обрабатываться точно так, как если бы они были видимы.
- Размер компонента (если он невидим) будет установлен на 0, 0.
- Размер компонента (если он невидим) будет установлен на 0, 0, а промежутки также будут установлены на 0 вокруг него.
- Невидимые компоненты вообще не будут участвовать в макете и, например, не будут занимать ячейку сетки.