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.

 Microsoft Visual Studio 2010 Showcase
 Avaya Developer Showcase
 MSDN Spotlight
 PHP for Windows Showcase
XML error: undefined entity at line 39
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%.

Windows 7: From Beta to Final Code in One Year
Google Shows Off Chrome OS, Releases Source
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?
Fedora 12 Takes Aim at Linux Networking
Top Supercomputer Nearly Doubles in Speed
Fedora 12 Linux Tackles Virtualization
Apple Gives iPhone Developers App Status Tracker
Novell Sets OpenSUSE 11.2 Free

Creating Custom Export Filters for StarOffice with XSLT
WPF Wonders: Using DataTemplates
Crystal Reports Family Offers Options for Developers
Avaya Aura Session Manager video
Avaya Aura Overview video
Exploring HTML 5's Audio/Video Multimedia Support
Overriding Virtual Functions? Use C++0x Attributes to Avoid Bugs.
Understanding the Cloud Computing Security Vulnerabilities
Cisco and IBM Target a Greener World
Upgrade to Visual Studio 2010 with the Ultimate Offer

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

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs