我在Java(1.5)+ Swing中做了一些例程,这需要一些时间。如何在swing线程之外实现此路由的最佳方法,以避免UI冻结?
提前致谢
答案 0 :(得分:7)
乍一看,请查看SwingWorker类。当你想让代码更健壮和可测试时,你可能想要远离它,但这是一个很好的第一次启动。
您可以获得Java 1.5 here的版本。使用1.6时,它是标准API的一部分。
答案 1 :(得分:3)
使用SwingWorker
当然是个好主意,我建议这样做。还要编写自定义javax.swing.Timer
和java.lang.Thread
s。
但不要忘记使用 profiler - 它可以帮助您找到许多问题。像Swing经常遇到麻烦“死”的监听器持有一些不能被垃圾收集的引用(导致响应非常缓慢或者UI冻结甚至内存泄漏)。 Profiler将帮助您在使用应用程序时调查特定情况下的内存需求,因此您可以对应用程序进行微调。
答案 2 :(得分:1)
解析为评论:
“这可能会有所帮助:stackoverflow.com/questions/2564388/javas-swing-threading - Andreas_D 7月5日22:01”