2013-07-29 138 views
0

我正在調試一個Java Swing應用程序,其中一個組件(在我的情況下,JPanel內的一個JPanel內的JButton)在應該時不會自動重新繪製。例如,當第一次顯示窗口時,可以在那裏看到JButton,但是當另一個窗口與我的應用程序的窗口重疊一段時間時,JButton就不能再被看到。Java Swing組件不會自動重繪

因爲我不知道從哪裏開始,所以我想知道什麼是重繪Swing組件中問題的最常見原因。

+1

如果'Swing'應用程序未在[Event-Dispatcher-Thread](http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html)上啓動,則可能會出現這種情況:-)你是從'main'線程啓動你的應用程序嗎?如果您是,請您閱讀該教程頁面的時間:-) –

+0

@nIcEcOw當然可以。 – deinocheirus

+2

__「是的,當然」__是的,當然,我的應用程序正在使用主線程進行GUI相關更新。或者是周圍的其他方式 ?!!! :-)不是代碼負責創建和顯示你的GUI,包裝在'invokeLater()'內? –

回答

0

如果最小化Windows和將其帶回上會發生什麼開始? 您可能會嘗試在您的代碼中的某處調用您的jpanel.revalidate()。但是,除非我看到您的代碼,否則我不知道該在哪裏打電話。