Удалить компонент Swing с помощью проверки или повторной проверки - PullRequest
8 голосов
/ 13 мая 2009

Всякий раз, когда я удаляю и добавляю компоненты свинга из, скажем, JPanel, я буду выполнять вызов для подтверждения или повторной проверки?

Ответы [ 4 ]

9 голосов
/ 14 мая 2009

revalidate () будет лучше. revalidate () помечает весь контейнер до верхнего уровня как неправильный или недействительный. Затем он вызывает validate () на верхнем уровне. Метод validate () родительского объекта проверяет, является ли хотя бы один из его ближайших потомков сигнальным, недействительным или неподходящим. это вызывает проверку родителя. поэтому вызов revalidate () автоматически означает вызов validate ().

4 голосов
/ 28 июня 2012

По крайней мере, в Java 7, revalidate() не обязательно «стирает» удаленные компоненты с экрана. Я полагаю, что это происходит, когда ограничивающий прямоугольник сжимается. В этих случаях звоните repaint() после revalidate().

4 голосов
/ 14 мая 2009

revalidate() - это в основном invalidate(), за которым следует validate().

Посмотрите на исходный код Sun для Java.

Вы хотите позвонить revalidate().

3 голосов
/ 14 мая 2009

Я бы подумал, что revalidate () - это то, что вы хотите. Метод validate () будет автоматически вызван для вас после вызова revalidate (). См. Java API для JComponent.revalidate () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...