Reputation: 31893
I have a task running using javax.swing.Timer. It executes once every few minutes. The task takes a second or two, and it is freezing my GUI.
What can I do to fix this?
Upvotes: 1
Views: 1195
Reputation: 18459
The task may be taking more that 2 seconds.. Does the task require access to GUI? If not use separate thread. The specific part of the task which require GUI access, can use SwingWorker to update the GUI.
Upvotes: 1
Reputation: 19177
Timer tasks are executed on the Event Dispatching thread so while your task is running, no other swing event can happen and your gui will freeze. You should make a separate thread for such a long task or use SwingWorker.
See this question for more details.
Upvotes: 2