Java Swing GUI在重新聚焦时冻结

时间:2012-09-20 13:11:33

标签: java swing concurrency freeze event-dispatching

我在WinXP上运行Swing GUI。

有时候,当我做其他事情(在网上冲浪......)然后我想回到我的程序时,GUI会出现但是完全被冻结,我无法做任何事情。

我必须等待(可能是10秒或5分钟),直到它再次起作用。

当我从屏幕保护程序回来时,我注意到同样的问题(所以我禁用了它)。

机器没有原因,RAM和处理器级别都没问题。

您是否知道这个非常恼人的问题的来源?也许是一个重漆的问题?

1 个答案:

答案 0 :(得分:2)

可能有很多解释:

  1. 您的应用在EDT线程(控制接口更新的线程)中执行了一些繁重的操作
  2. 可能存在由L& F或组件中的错误导致的UI更新问题(极少数情况下)
  3. GC由于某些内部调用而发生并处理整个应用程序(不太可能)
  4. 应用程序窗口的一些原生或旧JDK问题(几乎0%的可能性是你的情况)
  5. 通常第一种解释是有效的,在这种情况下,您应该只检查您的代码并在单独的线程中提取所有“重”操作。

    无论如何,如果没有看到代码,我就不能说更具体的内容......