Listing 1. From an ActionEvent to a background thread.
public void actionPerformed(ActionEvent event) {
Thread thread = new Thread() {
public void run() {
executeLongOperation();
}
};
thread.start();
}
private void executeLongOperation() {
try {
// synchronous
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
statusLabel.setText("Starting long operation");
}
});
} catch (InterruptedException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
for (int i = 10; i >= 0; i--) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
final int secondsRemaining = i;
// asynchronous
SwingUtilities.invokeLater(new Runnable() {
public void run() {
statusLabel.setText("Completing in " + secondsRemaining);
}
});
}
}
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|