【发布时间】:2010-10-25 23:03:42
【问题描述】:
每当我从 JPanel 中删除和添加摆动组件时,我应该执行调用验证还是重新验证?
【问题讨论】:
每当我从 JPanel 中删除和添加摆动组件时,我应该执行调用验证还是重新验证?
【问题讨论】:
我认为 revalidate() 是你想要的。在调用 revalidate() 之后,将自动为您调用 validate() 方法。 See the Java API for JComponent.revalidate().
【讨论】:
至少在 Java 7 中,revalidate() 不一定会从屏幕上“擦除”已删除的组件。我相信当边界框缩小时会发生这种情况。对于这些情况,请在revalidate() 之后调用repaint()。
【讨论】:
revalidate() 基本上是 invalidate() 后跟 validate()。
查看 Sun 的 Java 源代码。
你想打电话给revalidate()。
【讨论】:
invalidate() 后跟validate(),您将不会得到与revalidate() 相同的结果。
revalidate() 会更好。 revalidate() 将所有容器标记为不正确或无效。然后它在顶层调用 validate()。父级的 validate() 方法检查是否至少有一个直接子级发出无效或不正确的信号。它调用父级的验证。 所以调用 revalidate() 自动意味着调用 validate()。
【讨论】: