java.lang.Object | ||||
↳ | java.awt.Component | |||
↳ | java.awt.Container | |||
↳ | javax.swing.JComponent | |||
↳ | javax.swing.JProgressBar |
A component that visually displays the progress of some task. As the task progresses towards completion, the progress bar displays the task's percentage of completion. This percentage is typically represented visually by a rectangle which starts out empty and gradually becomes filled in as the task progresses. In addition, the progress bar can display a textual representation of this percentage.
JProgressBar
uses a BoundedRangeModel
as its data model,
with the value
property representing the "current" state of the task,
and the minimum
and maximum
properties representing the
beginning and end points, respectively.
To indicate that a task of unknown length is executing, you can put a progress bar into indeterminate mode. While the bar is in indeterminate mode, it animates constantly to show that work is occurring. As soon as you can determine the task's length and amount of progress, you should update the progress bar's value and switch it back to determinate mode.
Here is an example of creating a progress bar,
where task
is an object (representing some piece of work)
which returns information about the progress of the task:
progressBar = new JProgressBar(0, task.getLengthOfTask()); progressBar.setValue(0); progressBar.setStringPainted(true);Here is an example of querying the current state of the task, and using the returned value to update the progress bar:
progressBar.setValue(task.getCurrent());Here is an example of putting a progress bar into indeterminate mode, and then switching back to determinate mode once the length of the task is known:
progressBar = new JProgressBar(); ...//when the task of (initially) unknown length begins: progressBar.setIndeterminate(true); ...//do some work; get length of task... progressBar.setMaximum(newLength); progressBar.setValue(newValue); progressBar.setIndeterminate(false);
For complete examples and further documentation see How to Monitor Progress, a section in The Java Tutorial.
Warning: Swing is not thread safe. For more information see Swing's Threading Policy.
Warning:
Serialized objects of this class will not be compatible with
future Swing releases. The current serialization support is
appropriate for short term storage or RMI between applications running
the same version of Swing. As of 1.4, support for long term storage
of all JavaBeansTM
has been added to the java.beans
package.
Please see XMLEncoder
.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
JProgressBar.AccessibleJProgressBar | This class implements accessibility support for the
JProgressBar class. |
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() |
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
changeEvent | Only one ChangeEvent is needed per instance since the
event's only interesting property is the immutable source, which
is the progress bar. |
||||||||||
changeListener | Listens for change events sent by the progress bar's model, redispatching them to change-event listeners registered upon this progress bar. | ||||||||||
model | The object that holds the data for the progress bar. | ||||||||||
orientation | Whether the progress bar is horizontal or vertical. | ||||||||||
paintBorder | Whether to display a border around the progress bar. | ||||||||||
paintString | Whether to display a string of text on the progress bar. | ||||||||||
progressString | An optional string that can be displayed on the progress bar. |
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Creates a horizontal progress bar
that displays a border but no progress string.
| |||||||||||
Creates a progress bar with the specified orientation,
which can be
either
SwingConstants.VERTICAL or
SwingConstants.HORIZONTAL . | |||||||||||
Creates a horizontal progress bar
with the specified minimum and maximum.
| |||||||||||
Creates a progress bar using the specified orientation,
minimum, and maximum.
| |||||||||||
Creates a horizontal progress bar
that uses the specified model
to hold the progress bar's data.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Adds the specified
ChangeListener to the progress bar. | |||||||||||
Gets the
AccessibleContext associated with this
JProgressBar . | |||||||||||
Returns an array of all the
ChangeListener s added
to this progress bar with addChangeListener . | |||||||||||
Returns the progress bar's
maximum value
from the BoundedRangeModel . | |||||||||||
Returns the progress bar's
minimum value
from the BoundedRangeModel . | |||||||||||
Returns the data model used by this progress bar.
| |||||||||||
Returns
SwingConstants.VERTICAL or
SwingConstants.HORIZONTAL , depending on the orientation
of the progress bar. | |||||||||||
Returns the percent complete for the progress bar.
| |||||||||||
Returns a
String representation of the current progress. | |||||||||||
Returns the look-and-feel object that renders this component.
| |||||||||||
Returns the name of the look-and-feel class that renders this component.
| |||||||||||
Returns the progress bar's current
value
from the BoundedRangeModel . | |||||||||||
Returns the
borderPainted property. | |||||||||||
Returns the value of the
indeterminate property. | |||||||||||
Returns the value of the
stringPainted property. | |||||||||||
Removes a
ChangeListener from the progress bar. | |||||||||||
Sets the
borderPainted property, which is
true if the progress bar should paint its border. | |||||||||||
Sets the
indeterminate property of the progress bar,
which determines whether the progress bar is in determinate
or indeterminate mode. | |||||||||||
Sets the progress bar's maximum value
(stored in the progress bar's data model) to
n . | |||||||||||
Sets the progress bar's minimum value
(stored in the progress bar's data model) to
n . | |||||||||||
Sets the data model used by the
JProgressBar . | |||||||||||
Sets the progress bar's orientation to
newOrientation ,
which must be SwingConstants.VERTICAL or
SwingConstants.HORIZONTAL . | |||||||||||
Sets the value of the progress string.
| |||||||||||
Sets the value of the
stringPainted property,
which determines whether the progress bar
should render a progress string. | |||||||||||
Sets the look-and-feel object that renders this component.
| |||||||||||
Sets the progress bar's current value to
n . | |||||||||||
Resets the UI property to a value from the current look and feel.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Subclasses that want to handle change events
from the model differently
can override this to return
an instance of a custom
ChangeListener implementation. | |||||||||||
Send a
ChangeEvent , whose source is this JProgressBar , to
all ChangeListener s that have registered interest in
ChangeEvent s. | |||||||||||
Paints the progress bar's border if the
borderPainted
property is true . | |||||||||||
Returns a string representation of this
JProgressBar . |
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() |
Only one ChangeEvent
is needed per instance since the
event's only interesting property is the immutable source, which
is the progress bar.
The event is lazily created the first time that an
event notification is fired.
Listens for change events sent by the progress bar's model, redispatching them to change-event listeners registered upon this progress bar.
Whether the progress bar is horizontal or vertical.
The default is HORIZONTAL
.
Whether to display a border around the progress bar.
The default is true
.
Whether to display a string of text on the progress bar.
The default is false
.
Setting this to true
causes a textual
display of the progress to be rendered on the progress bar. If
the progressString
is null
,
the percentage of completion is displayed on the progress bar.
Otherwise, the progressString
is
rendered on the progress bar.
An optional string that can be displayed on the progress bar.
The default is null
. Setting this to a non-null
value does not imply that the string will be displayed.
To display the string, paintString
must be true
.
Creates a horizontal progress bar that displays a border but no progress string. The initial and minimum values are 0, and the maximum is 100.
Creates a progress bar with the specified orientation,
which can be
either SwingConstants.VERTICAL
or
SwingConstants.HORIZONTAL
.
By default, a border is painted but a progress string is not.
The initial and minimum values are 0,
and the maximum is 100.
orient | the desired orientation of the progress bar |
---|
IllegalArgumentException | if orient is an illegal value |
---|
Creates a horizontal progress bar with the specified minimum and maximum. Sets the initial value of the progress bar to the specified minimum. By default, a border is painted but a progress string is not.
The BoundedRangeModel
that holds the progress bar's data
handles any issues that may arise from improperly setting the
minimum, initial, and maximum values on the progress bar.
See the BoundedRangeModel
documentation for details.
min | the minimum value of the progress bar |
---|---|
max | the maximum value of the progress bar |
Creates a progress bar using the specified orientation, minimum, and maximum. By default, a border is painted but a progress string is not. Sets the initial value of the progress bar to the specified minimum.
The BoundedRangeModel
that holds the progress bar's data
handles any issues that may arise from improperly setting the
minimum, initial, and maximum values on the progress bar.
See the BoundedRangeModel
documentation for details.
orient | the desired orientation of the progress bar |
---|---|
min | the minimum value of the progress bar |
max | the maximum value of the progress bar |
IllegalArgumentException | if orient is an illegal value |
---|
Creates a horizontal progress bar that uses the specified model to hold the progress bar's data. By default, a border is painted but a progress string is not.
newModel | the data model for the progress bar |
---|
Adds the specified ChangeListener
to the progress bar.
l | the ChangeListener to add
|
---|
Gets the AccessibleContext
associated with this
JProgressBar
. For progress bars, the
AccessibleContext
takes the form of an
AccessibleJProgressBar
.
A new AccessibleJProgressBar
instance is created if necessary.
AccessibleJProgressBar
that serves as the
AccessibleContext
of this JProgressBar
Returns an array of all the ChangeListener
s added
to this progress bar with addChangeListener
.
ChangeListener
s added or an empty
array if no listeners have been addedReturns the progress bar's maximum
value
from the BoundedRangeModel
.
Returns the progress bar's minimum
value
from the BoundedRangeModel
.
Returns the data model used by this progress bar.
BoundedRangeModel
currently in useReturns SwingConstants.VERTICAL
or
SwingConstants.HORIZONTAL
, depending on the orientation
of the progress bar. The default orientation is
SwingConstants.HORIZONTAL
.
HORIZONTAL
or VERTICAL
Returns the percent complete for the progress bar. Note that this number is between 0.0 and 1.0.
Returns a String
representation of the current progress.
By default, this returns a simple percentage String
based on
the value returned from getPercentComplete
. An example
would be the "42%". You can change this by calling setString
.
null
Returns the look-and-feel object that renders this component.
ProgressBarUI
object that renders this component
Returns the name of the look-and-feel class that renders this component.
Returns the progress bar's current value
from the BoundedRangeModel
.
The value is always between the
minimum and maximum values, inclusive.
Returns the borderPainted
property.
borderPainted
propertyReturns the value of the indeterminate
property.
indeterminate
propertyReturns the value of the stringPainted
property.
stringPainted
propertyRemoves a ChangeListener
from the progress bar.
l | the ChangeListener to remove
|
---|
Sets the borderPainted
property, which is
true
if the progress bar should paint its border.
The default value for this property is true
.
Some look and feels might not implement painted borders;
they will ignore this property.
b | true if the progress bar
should paint its border;
otherwise, false |
---|
Sets the indeterminate
property of the progress bar,
which determines whether the progress bar is in determinate
or indeterminate mode.
An indeterminate progress bar continuously displays animation
indicating that an operation of unknown length is occurring.
By default, this property is false
.
Some look and feels might not support indeterminate progress bars;
they will ignore this property.
See How to Monitor Progress for examples of using indeterminate progress bars.
newValue | true if the progress bar
should change to indeterminate mode;
false if it should revert to normal. |
---|
Sets the progress bar's maximum value
(stored in the progress bar's data model) to n
.
The underlying BoundedRangeModel
handles any mathematical
issues arising from assigning faulty values.
See the BoundedRangeModel
documentation for details.
If the maximum value is different from the previous maximum, all change listeners are notified.
n | the new maximum |
---|
Sets the progress bar's minimum value
(stored in the progress bar's data model) to n
.
The data model (a BoundedRangeModel
instance)
handles any mathematical
issues arising from assigning faulty values.
See the BoundedRangeModel
documentation for details.
If the minimum value is different from the previous minimum, all change listeners are notified.
n | the new minimum |
---|
Sets the data model used by the JProgressBar
.
Note that the BoundedRangeModel
's extent
is not used,
and is set to 0
.
newModel | the BoundedRangeModel to use |
---|
Sets the progress bar's orientation to newOrientation
,
which must be SwingConstants.VERTICAL
or
SwingConstants.HORIZONTAL
. The default orientation
is SwingConstants.HORIZONTAL
.
newOrientation | HORIZONTAL or VERTICAL |
---|
IllegalArgumentException | if newOrientation
is an illegal value |
---|
Sets the value of the progress string. By default,
this string is null
, implying the built-in behavior of
using a simple percent string.
If you have provided a custom progress string and want to revert to
the built-in behavior, set the string back to null
.
The progress string is painted only if
the isStringPainted
method returns true
.
s | the value of the progress string |
---|
Sets the value of the stringPainted
property,
which determines whether the progress bar
should render a progress string.
The default is false
, meaning
no string is painted.
Some look and feels might not support progress strings
or might support them only when the progress bar is in determinate mode.
b | true if the progress bar should render a string |
---|
Sets the look-and-feel object that renders this component.
ui | a ProgressBarUI object |
---|
Sets the progress bar's current value to n
. This method
forwards the new value to the model.
The data model (an instance of BoundedRangeModel
)
handles any mathematical
issues arising from assigning faulty values. See the
BoundedRangeModel
documentation for details.
If the new value is different from the previous value, all change listeners are notified.
n | the new value |
---|
Resets the UI property to a value from the current look and feel.
Subclasses that want to handle change events
from the model differently
can override this to return
an instance of a custom ChangeListener
implementation.
The default ChangeListener
simply calls the
fireStateChanged
method to forward ChangeEvent
s
to the ChangeListener
s that have been added directly to the
progress bar.
Send a ChangeEvent
, whose source is this JProgressBar
, to
all ChangeListener
s that have registered interest in
ChangeEvent
s.
This method is called each time a ChangeEvent
is received from
the model.
The event instance is created if necessary, and stored in
changeEvent
.
Paints the progress bar's border if the borderPainted
property is true
.
g | the Graphics context within which to paint the border |
---|
Returns a string representation of this JProgressBar
.
This method is intended to be used only for debugging purposes. The
content and format of the returned string may vary between
implementations. The returned string may be empty but may not
be null
.
JProgressBar