使用验证或重新验证删除Swing组件

时间:2009-05-13 18:11:02

标签: java swing

每当我从JPanel中删除并添加swing组件时,我是否应该在验证或重新验证时执行调用?

4 个答案:

答案 0 :(得分:9)

revalidate()会更好。 revalidate()将所有容器标记为顶级不正确或无效。然后它在顶层调用validate()。父级的validate()方法检查其直接子节点中是否至少有一个发出无效或不正确的信号。它调用父母的验证。 因此,调用revalidate()会自动表示调用validate()。

答案 1 :(得分:4)

revalidate()基本上是invalidate()后跟validate()

查看Sun的Java源代码。

您想致电revalidate()

答案 2 :(得分:4)

至少在Java 7中,revalidate()不一定“擦除”屏幕上删除的组件。我相信当边界框收缩时会发生这种情况。对于这些情况,请在repaint()之后致电revalidate()

答案 3 :(得分:3)

我认为revalidate()就是你想要的。调用revalidate()后,将自动为您调用validate()方法。 See the Java API for JComponent.revalidate()