advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

Tutorials : Unfreeze Your Applications with the New SwingWorker :

Important Method Signatures


Using SwingWorker, you are benefiting from work that went into the JSR 166 (Concurrency Utilities). SwingWorker makes internal use of the java.util.concurrent package. SwingWorker implements Future by delegating it to an internal instance of a FutureTask object. Here are some of the method signatures from the Future interface that you will want to know about.
  • The cancel Method: This takes a boolean parameter. If you want to kill your time-consuming code, invoking cancel(true) is SwingWorker object's equivalent of a kill -9. If you would prefer to have your time-consuming code cancel more gracefully, use cancel(false). The return value will be true if cancel was successful; however, a false value may indicate the time-consuming code has already completed or been canceled.
    public boolean cancel(boolean mayInterruptIfRunning);
    
  • The isCancelled Method: Use this method if you are using the graceful form of cancel. It is left up to your time-consuming code to periodically check if it should cancel gracefully (e.g. while(!done && !isCancelled){...} where done is local to your implementation).
    public boolean isCancelled();
    
  • The Get Methods: If your time-consuming code is returning a result then you will need to retrieve it using one of the SwingWorker object's get methods. ]

    • If you invoke get before your time-consuming code is done, then get will block it, so don't do that if you are on the event dispatch thread.
      public final T get() throws InterruptedException, ExecutionException;
      
      public final T get(long timeout, TimeUnit unit) throws 
        InterruptedException, ExecutionException, TimeoutException;(also a bullet) 
      
    • The second form of the get method allows you to specify a timeout and would be useful if your time-consuming code is permanently waiting on a failed resource. Being able to invoke get on a background thread and having it block until the time-consuming code has completed is another demonstration of the SwingWorker object's flexibility, but most of the time you will invoke get after the SwingWorker is done and there is one thing you need to know.

  • The done Method: When you are informed that the SwingWorker is done via a property change or via the SwingWorker object's done method, you need to be aware that the get methods can throw a CancellationException. A CancellationException is a RuntimeException, which means you do not need to declare it thrown and you do not need to catch it. Instead, you should test the SwingWorker using the isCancelled method before you use the get method.

Built for the Future

If you were happy with the original SwingWorker, then you should enjoy the new power and flexibility of the the new SwingWorker. If you would like more information about using the SwingWorker, The Java(tm) Tutorial has been updated to include a section on the javax.swing.SwingWorker.

Dan Andrews is the President of Ansir Development Limited. He has been a Sun Certified Programmer for the Java(tm) 2 Platform since 1999. Prior to founding Ansir Development Limited in 2005, Dan worked at SED Systems as a programmer analyst. At SED, he worked on building large Swing applications which help control some of the world's largest satellite networks and deep space antennas.

How to Add Java Applets to Your Site

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.

 IBM Software Construction Toolbox
 Microsoft RIA Development Center
 Destination .NET
XML error: not well-formed (invalid token) at line 33
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

IBM Gives a Mobile Voice to Developers
Inadequate Tools Send Software Down the Drain
USB 3.0 One Step Closer to Reality
Would-Be Linux Contributors May Get a Leg Up
SAP, Oracle Holding Out on Ubuntu?
GIPS Technology to Voice-Enable iPhone Apps
Citrix CTO Eyes the Future of Virtualization
The Pitfalls of Open Source Litigation
LiMo Open to Working With Google on Mobile
Google Gadgets Under Attack at Black Hat

The Guide to E-Mail Archiving and Management
Making XQuery Control Structures Work for You
Simplifying Composite Applications with Service Component Architecture
Overview: C++ Gets an Overhaul
Sharpening Your Axis with Visual Basic 9
Easier C++: An Introduction to Concepts
Simpler Multithreading in C++0x
Software as a Service Perceptions Survey - March 2007
Rackspace® Security
On Demand Media Technology Company Relies on The IT Hosting Leader to Provide Managed Microsoft Exchange

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers