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

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

最佳答案

计时器任务是在事件调度线程上执行的,因此在您的任务运行时,不会发生其他任何摆动事件,并且您的GUI将冻结。对于如此长的任务,您应该创建一个单独的线程,或者使用SwingWorker。

有关更多详细信息,请参见this问题。

09-11 17:28