【问题标题】:Java javax.swing.Timer - freezing my GUI. Solution?Java javax.swing.Timer - 冻结我的 GUI。解决方案?
【发布时间】:2017-12-22 17:10:04
【问题描述】:

我有一个使用 javax.swing.Timer 运行的任务。它每隔几分钟执行一次。该任务需要一两秒钟,它冻结了我的 GUI。

我能做些什么来解决这个问题?

【问题讨论】:

  • 您能否发布创建计时器和任务本身的代码?
  • 该任务是在 Timer 任务执行所需的一两秒钟内冻结您的 GUI,还是完全锁定您的应用程序?
  • 只是挂了2秒,然后一切都好..我应该在Timer回调函数上启动SwingWorker吗?

标签: java swing timer


【解决方案1】:

该任务可能需要超过 2 秒的时间。该任务是否需要访问 GUI?如果不使用单独的线程。需要 GUI 访问的任务的特定部分,可以使用 SwingWorker 来更新 GUI。

【讨论】:

    【解决方案2】:

    Timer 任务在 Event Dispatching 线程上执行,因此当您的任务运行时,不会发生其他摆动事件,您的 gui 将冻结。您应该为这么长的任务创建一个单独的线程或使用 SwingWorker。

    更多详情请参阅this问题。

    【讨论】:

      猜你喜欢
      • 2012-09-25
      • 2015-05-09
      • 1970-01-01
      • 2022-11-18
      • 1970-01-01
      • 2012-06-26
      • 2017-10-11
      相关资源
      最近更新 更多