tags:

views:

48

answers:

2

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?

+2  A: 

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.

tulskiy
+1  A: 

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.

Jayan