【问题标题】:Java Swing - UI FreezingJava Swing - UI 冻结
【发布时间】:2011-03-12 01:47:29
【问题描述】:

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

提前致谢

【问题讨论】:

  • 其实那个链接也比我的回答好很多...
  • 是的,我已经用这个链接发布了一个答案,但它现在没用了:)
  • 谢谢。我根据这个答案完成了自己的实现,并添加了一个 ProgressBar 来报告状态。 :)

标签: java swing multithreading


【解决方案1】:

乍一看,看看 SwingWorker 类。当您想让代码更加健壮和可测试时,您可能希望摆脱这种情况,但这是一个足够好的开始。

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

【讨论】:

【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    解决为评论:

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

    【讨论】:

      猜你喜欢
      • 2012-06-26
      • 1970-01-01
      • 2012-09-25
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 2013-11-05
      相关资源
      最近更新 更多