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

2022-09-03 15:26:15

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

确定是否需要重新验证组件的规则是什么?当组件上的某些属性发生更改时,swing 是否会自动调用 realidate(),而对于其他一些属性,swing 是否会自动调用 realidate()?


答案 1

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

虽然这个例外不是很明确,但它在“正常”应用程序开发中并不常见:如果需要“经常”调用它,那么代码很有可能会出错,f.i.自定义模型实现不会通知其侦听器。


答案 2

推荐