什么时候需要在swing组件上调用revalidate()以使其刷新,何时不需要?

在处理swing组件时,以及在运行时更改组件时,一个(通常)需要在组件上调用revalidate()方法以便刷新它们。

确定是否需要重新validation组件的规则是什么? 当组件上的某些特性发生变化时,swing是否会自动调用revalidate(),而对于其他某些属性则不会?

基本规则是:从不 – 摇摆内部会照顾它。 该规则的基本例外是在运行时添加/删除组件或者以系统无法知道或由于某种原因不想对其做出反应的方式影响布局的更改。

虽然例外情况不是很明确,但“正常”应用程序开发中的频率是:如果需要“经常”调用它,那么代码很可能出现问题,而自定义模型实现则没有通知其监听器。