Как сделать компонент невидимым, не меняя расположение других элементов - PullRequest
3 голосов
/ 29 февраля 2012

Для перехода по списку есть две кнопки: «Далее» и «Назад». Когда достигнут конец, кнопка «Далее» исчезнет, ​​но кнопка «назад» не должна прыгать на свое место. Я использую setVisible (false), но кнопка «Назад» перепрыгивает на место «Далее». Расположение менеджера GridBagLayout.

Ответы [ 3 ]

5 голосов
/ 29 февраля 2012

Я использую setVisible (false)

Попробуйте вместо setEnabled(false).Это не удалит визуальное представление кнопки, которая фиксирует макет, но сделает ее не фокусируемой и будет выглядеть по-другому.Это «путь наименьшего удивления» для типичного конечного пользователя.


Менеджер местоположений - GridBagLayout.

Кстати - если вы застряли на созданиикнопка невидима, GridLayout позволит добиться эффекта сохранения позиций других кнопок.

4 голосов
/ 29 февраля 2012

Поместите кнопку в контейнер JPanel с CardLayout вместе с еще одним пустым JPanel (или JLabel). Если вы хотите спрятать кнопку, просто поменяйте местами карты в контейнере.

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

Есть две кнопки: "Next" & "Back", это причина для использования CardLayout

...