SwingWorker supports
bound properties, which are useful for communicating with other threads. Two bound
properties are predefined: progress and
state. As with all bound properties,
progress and state can be used to trigger
event-handling tasks on the event dispatch thread.
By implementing a property change listener, a program can track
changes to progress, state, and other bound
properties. For more information, refer to
How to Write a Property Change Listener
in
Writing Event Listeners.
progress Bound Variableprogress bound variable is an int value
that can range from 0 to 100. It has a predefined setter method (the protected
SwingWorker.setProgress)
and a predefined getter method (the public
SwingWorker.getProgress).
The
ProgressBarDemoprogress to update a
ProgressBar control from a background task. For a
detailed discussion of this example, refer to
How to Use Progress Bars
in
Using Swing Components.
state Bound Variablestate bound variable indicates where the
SwingWorker object is in its lifecycle.
The bound variable contains an enumeration value of type
SwingWorker.StateValue. Possible values are:
PENDING
    doInBackground is invoked.
    STARTED
    doInBackground is invoked until shortly before
    done is invoked.
    state bound variable is returned by
SwingWorker.getState. 
Future interface, also report on
the status of the background task. As we saw in
Canceling Background Tasks, isCancelled returns true if the task has been
canceled. In addition, isDone returns true if
the task has finished, either normally, or by being cancelled.