Lesson 11 - Timer and SwingWorker in Java Swing
In the previous lesson, Handling Click on Coordinates in Java Swing, we completed an application that drew
geometric shapes on an inherited JPanel
. In today's Java turtorial,
we're going to learn to use Timer
and SwingWorker
.
We'll try both components on illustrative examples.
The Form Application Loop
Do you remember our console tutorials? If we wanted to repeat something, we simply put the code in a loop. If we wanted to create a 10-second countdown, the code would look like this:
for (int i = 10; i > 0; i--) { System.out.println(i); try { Thread.sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(CountdownConsole.class.getName()).log(Level.SEVERE, null, ex); } }
The result:
We can't do it like this in Swing. The above operation takes 10 seconds. If we ran a similar long-running operation, the form thread would be executing it and the entire form would freez. The application would then stop responding. After a few seconds, Windows would even offer us to quit the app as it's not answering. The reason behind this is that we'd have stopped the
...End of the preview...
Continue further
You've come here and that's great! We believe that the first lessons showed you something new and useful
Do you want to continue the course? Go to the premium section.
Buy this course
This article is licensed: Premium, by buying this article, you agree with the terms of use.
- Unlimited and permanent access to individual lessons.
- High quality IT knowledge.
- Skills to help you get your dream and well-paid job.
Article description
Requested article covers this content:
In the Java Swing tutorial, we'll introduce Timer that allows us to run an event over a period of time, and SwingWorker that runs a background operation.
You gain credits by supporting our network. This is done by sending a helpful amount of money to support the site, or by creating content for the network.