【发布时间】:2010-11-09 00:02:54
【问题描述】:
我正在组合一个 Swing 应用程序,我经常想在其中替换 JPanel 的内容。为此,我调用removeAll(),然后添加我的新内容,然后调用revalidate()。
但是,我发现旧内容实际上仍然可见(尽管被新内容遮盖了)。如果我在revalidate() 之外添加对repaint() 的调用,它会按预期工作。
我敢肯定,在其他情况下,我只需要拨打revalidate() 就足够了。
所以基本上我的问题是 - 我是否需要调用这两个函数,如果不需要,我应该什么时候调用它们?
【问题讨论】:
-
This tutorial from Oracle 声明:“始终在重新验证后调用重新绘制”。但没有提供任何解释。