2010-09-15 148 views
20

我想在按下按钮时在运行时添加一些新组件到我的JFrame。 到目前为止,这个工作正常,但我必须手动调整窗口大小以查看新组件。添加新组件后刷新JFrame

是否有任何可以触发的动作或调用刷新窗口的方法?任何帮助赞赏。提前致谢。

回答

36

你必须revalidate();的框架。如果不工作,你也必须调用repaint();

+1

好吧,我不得不在我的课堂上一点点破解,但它的工作原理! (顺便说一下,你的意思是验证()正确?)) – reox 2010-09-15 14:26:44

+0

的确,由于JFrame已经是顶级容器,你可以调用validate();. – crusam 2010-09-15 14:54:43

+0

好吧,通常组件会被添加到JPanel中,而不是直接添加到框架中,因此您将重新验证面板。 – camickr 2010-09-15 15:33:43

7

呼叫

revalidate(); 
repaint(); 

revalidate告诉来重置基于新组件列表上的布局管理器。这也会触发重新绘制的调用。

repaint是用来告诉组件重绘自己。

0

在java repaint();为我工作。而revalidate();不适合我。