Когда нужно перевести revalidate() на компонент swing, чтобы он обновлялся, а когда нет?

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

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

Ответы

Ответ 1

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

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