Java javax.swing.Timer - 冻结我的GUI。解?

时间:2010-08-18 02:53:14

标签: java swing timer

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

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:2)

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

有关详细信息,请参阅this问题。

答案 1 :(得分:1)

任务可能需要2秒钟以上..任务是否需要访问GUI?如果不使用单独的线程。需要GUI访问的任务的特定部分可以使用SwingWorker来更新GUI。