15

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

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

4

1 回答 1

11

基本规则是:从不——swing internals 会处理它。该规则的基本例外是在运行时添加/删除组件或以系统无法知道或出于某种原因不想做出反应的方式更改影响布局。

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

于 2011-04-24T10:57:25.397 回答