0

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

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

在这种情况下对我有什么建议吗?

谢谢!

4

1 回答 1

0

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

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

因此,请确保您的线程调用SwingUtilities.invokeLater()(或invokeAndWait()取决于您的需要)。

另一种可能性(但这在很大程度上取决于您的线程的作用,没有您的进一步描述,很难说)是使用SwingWorker而不是线程。

于 2011-03-31T04:33:26.650 回答