Java Swing - UI Freezing

时间:2010-07-05 21:57:08

标签: java swing multithreading

我在Java(1.5)+ Swing中做了一些例程,这需要一些时间。如何在swing线程之外实现此路由的最佳方法,以避免UI冻结?

提前致谢

3 个答案:

答案 0 :(得分:7)

乍一看,请查看SwingWorker类。当你想让代码更健壮和可测试时,你可能想要远离它,但这是一个很好的第一次启动。

您可以获得Java 1.5 here的版本。使用1.6时,它是标准API的一部分。

答案 1 :(得分:3)

使用SwingWorker当然是个好主意,我建议这样做。还要编写自定义javax.swing.Timerjava.lang.Thread s。

但不要忘记使用 profiler - 它可以帮助您找到许多问题。像Swing经常遇到麻烦“死”的监听器持有一些不能被垃圾收集的引用(导致响应非常缓慢或者UI冻结甚至内存泄漏)。 Profiler将帮助您在使用应用程序时调查特定情况下的内存需求,因此您可以对应用程序进行微调。

答案 2 :(得分:1)

解析为评论:

“这可能会有所帮助:stackoverflow.com/questions/2564388/javas-swing-threading - Andreas_D 7月5日22:01”