2013-07-29 137 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()。但是,除非我看到您的代码,否则我不知道该在哪里打电话。