Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Удалить компонент Swing с помощью проверки или повторной проверки

Автор вопроса: Cheok Yan ChengОтветов: 4

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

javaswing

Ответы

Ответ 1 · рейтинг 4 · Avrom

revalidate() в основном представляет собой invalidate(), за которым следует validate().

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

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

Ответ 2 · рейтинг 9 · sazamsk

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

Ответ 3 · рейтинг 4 · htimesh

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

Ответ 4 · рейтинг 3 · Nicholas Hirras

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы