我有一个使用javax.swing.Timer运行的任务。它每隔几分钟执行一次。任务需要一两秒钟,它会冻结我的GUI。
我该怎么做才能解决这个问题?
答案 0 :(得分:2)
计时器任务在Event Dispatching线程上执行,因此在您的任务运行时,不会发生其他任何摆动事件,您的gui将冻结。您应该为这么长的任务创建一个单独的线程,或者使用SwingWorker。
有关详细信息,请参阅this问题。
答案 1 :(得分:1)
任务可能需要2秒钟以上..任务是否需要访问GUI?如果不使用单独的线程。需要GUI访问的任务的特定部分可以使用SwingWorker来更新GUI。