Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java Swing - UI Freezing

I'm doing some routine in Java (1.5)+Swing, that damands some time. How the best way to implement this routing outside the swing thread, to avoid UI freezing?

Thanks in advance

like image 225
Victor Avatar asked Jul 05 '10 21:07

Victor


2 Answers

At first blush, look at the SwingWorker class. When you want to make the code more robust and testable, you probably want to move away from that, but it is a good enough first start.

You can get a version for Java 1.5 here. With 1.6 it is part of the standard API.

like image 160
Yishai Avatar answered Oct 06 '22 07:10

Yishai


Using SwingWorker is of course good idea and I recommend that. Also writing custom javax.swing.Timers and java.lang.Threads .

But don't forget to use profiler - it can help you to find many problems. Like Swing is often having trouble with "dead" Listeners holding some references which can not be garbage collected (resulting in very slow responses or freezing of UI or even memory leaks). Profiler will help you to investigate memory needs of specific situations when using your application and therefore you might be able to do fine tuning of your app.

like image 34
Xorty Avatar answered Oct 06 '22 07:10

Xorty