Когда нужно вызывать revalidate () для компонента Swing, чтобы он обновился, а когда нет? - PullRequest
14 голосов
/ 24 апреля 2011

При работе с компонентами Swing и при изменении компонентов во время выполнения необходимо (часто) вызывать метод revalidate () для компонентов, чтобы они обновлялись.

Каковы правила, которыеопределить, нужно ли проводить повторную проверку компонента?Разве качание автоматически вызывает revalidate (), когда некоторые определенные свойства компонента изменяются, а для некоторых других свойств нет?

1 Ответ

10 голосов
/ 24 апреля 2011

Основное правило таково: никогда - внутренние механизмы свинга позаботятся об этом. Основное исключение из правила - добавление / удаление компонентов во время выполнения или изменения, которые влияют на компоновку так, как система не может знать или по какой-то причине не хочет реагировать на нее.

Несмотря на то, что исключение не очень четкое, оно встречается редко при «нормальной» разработке приложений: если есть необходимость «часто» вызывать его, с большой вероятностью что-то не так с кодом, например, i. реализация пользовательской модели, не уведомляющая своих слушателей.

...