2010-09-15 152 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();不適合我。