JDialog处理和重新绘制问题

时间:2011-03-30 08:57:06

标签: performance swing concurrency repaint jdialog

在jnlp应用程序中,我们创建了一个从javax.swing.JDialog扩展的模式弹出窗口,并在必要时调用dispose()来隐藏对话框。但是,有时候最终的客户会重新粉刷问题。对话框并没有真正消失,其父窗口看起来很乱。我无法重现,但它最终在客户端PC上发生了很多次。我想有两个可能的原因:

  • 我们的应用程序中有一个线程直接更新游标。但是,我不能证明这个帖子是问题的根本原因。
  • 我们会在几秒钟内有另一个进程高度使用CPU。我试图加载CPU,但我也无法重现这个问题。

在这种情况下对我有任何建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

看起来答案就在问题中; - )

有一个线程(不是EDT )更新UI(在你的情况下是光标)可能会导致这种问题。

因此,请确保您的主题根据您的需要调用SwingUtilities.invokeLater()(或invokeAndWait())。

另一种可能性(但这很大程度上取决于你的线程做了什么,没有你方面的进一步描述,很难说)将使用SwingWorker而不是线程。