每当我从JPanel中删除并添加swing组件时,我是否应该在验证或重新验证时执行调用?
答案 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()