Andy Hin
Andy Hin

Reputation: 31893

Java javax.swing.Timer - freezing my GUI. Solution?

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

Answers (2)

Jayan
Jayan

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

Denis Tulskiy
Denis Tulskiy

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

Related Questions