2011-02-23 75 views

回答

5

當添加/從可見的GUI移除組件的代碼應該是這樣的:

panel.remove(...); 
panel.add(...); 
panel.revalidate(); 
panel.repaint(); 

此外,代碼應該在事件指派線程執行。如果代碼從監聽器中執行,那麼它在EDT上。如果代碼在偵聽器之外執行,那麼您可能需要使用SwingWorker或SwingUtilities.invokeLater()。

+0

我認爲重新驗證自己組織必要的重繪,所以你不必這樣調用它。不過,更重要的部分是美國東部時間。 – 2011-02-23 18:55:41

+0

有時候重新繪製絕對是必不可少的,尤其是在刪除組件時,所以重新驗證是很多次不夠的。 – 2011-02-23 19:03:33

+0

對不起,我的問題還沒有足夠明確......我知道在EDT中需要這麼做......只有在重量級慢動作組件與輕量級揮杆組件混合時,這還不夠。我編輯我的問題更具體。 – jumar 2011-02-25 14:19:38