| JavaTM 2 Platform Std. Ed. v1.6.0
javax.swing
Class JProgressBar
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JProgressBar
- All Implemented Interfaces:
- ImageObserver, MenuContainer, Serializable, Accessible, SwingConstants
public class JProgressBar - extends JComponent
- implements SwingConstants, Accessible
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.
- See Also:
BasicProgressBarUI,
BoundedRangeModel,
SwingWorker
|
Field Summary |
protected ChangeEvent |
changeEvent
Only one ChangeEvent is needed per instance since the
event's only interesting property is the immutable source, which
is the progress bar. |
protected ChangeListener |
changeListener
Listens for change events sent by the progress bar's model,
redispatching them
to change-event listeners registered upon
this progress bar. |
protected BoundedRangeModel |
model
The object that holds the data for the progress bar. |
protected int |
orientation
Whether the progress bar is horizontal or vertical. |
protected boolean |
paintBorder
Whether to display a border around the progress bar. |
protected boolean |
paintString
Whether to display a string of text on the progress bar. |
protected String |
progressString
An optional string that can be displayed on the progress bar. |
| Fields inherited from interface javax.swing.SwingConstants |
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
|
Constructor Summary |
JProgressBar()
Creates a horizontal progress bar
that displays a border but no progress string. |
JProgressBar(BoundedRangeModel newModel)
Creates a horizontal progress bar
that uses the specified model
to hold the progress bar's data. |
JProgressBar(int orient)
Creates a progress bar with the specified orientation,
which can be
either SwingConstants.VERTICAL or
SwingConstants.HORIZONTAL. |
JProgressBar(int min,
int max)
Creates a horizontal progress bar
with the specified minimum and maximum. |
JProgressBar(int orient,
int min,
int max)
Creates a progress bar using the specified orientation,
minimum, and maximum. |
|
Method Summary |
void |
addChangeListener(ChangeListener l)
Adds the specified ChangeListener to the progress bar. |
protected ChangeListener |
createChangeListener()
Subclasses that want to handle change events
from the model differently
can override this to return
an instance of a custom ChangeListener implementation. |
protected void |
fireStateChanged()
Send a ChangeEvent, whose source is this JProgressBar, to
all ChangeListeners that have registered interest in
ChangeEvents. |
AccessibleContext |
getAccessibleContext()
Gets the AccessibleContext associated with this
JProgressBar. |
ChangeListener[] |
getChangeListeners()
Returns an array of all the ChangeListeners added
to this progress bar with addChangeListener. |
int |
getMaximum()
Returns the progress bar's maximum value
from the BoundedRangeModel. |
int |
getMinimum()
Returns the progress bar's minimum value
from the BoundedRangeModel. |
BoundedRangeModel |
getModel()
Returns the data model used by this progress bar. |
int |
getOrientation()
Returns SwingConstants.VERTICAL or
SwingConstants.HORIZONTAL, depending on the orientation
of the progress bar. |
double |
getPercentComplete()
Returns the percent complete for the progress bar. |
String |
getString()
Returns a String representation of the current progress. |
ProgressBarUI |
getUI()
Returns the look-and-feel object that renders this component. |
String |
getUIClassID()
Returns the name of the look-and-feel class that renders this component. |
int |
getValue()
Returns the progress bar's current value
from the BoundedRangeModel. |
boolean |
isBorderPainted()
Returns the borderPainted property. |
boolean |
isIndeterminate()
Returns the value of the indeterminate property. |
boolean |
isStringPainted()
Returns the value of the stringPainted property. |
protected void |
paintBorder(Graphics g)
Paints the progress bar's border if the borderPainted
property is true. |
protected String |
paramString()
Returns a string representation of this JProgressBar. |
void |
removeChangeListener(ChangeListener l)
Removes a ChangeListener from the progress bar. |
void |
setBorderPainted(boolean b)
Sets the borderPainted property, which is
true if the progress bar should paint its border. |
void |
setIndeterminate(boolean newValue)
Sets the indeterminate property of the progress bar,
which determines whether the progress bar is in determinate
or indeterminate mode. |
void |
setMaximum(int n)
Sets the progress bar's maximum value
(stored in the progress bar's data model) to n. |
void |
setMinimum(int n)
Sets the progress bar's minimum value
(stored in the progress bar's data model) to n. |
void |
setModel(BoundedRangeModel newModel)
Sets the data model used by the JProgressBar. |
void |
setOrientation(int newOrientation)
Sets the progress bar's orientation to newOrientation,
which must be SwingConstants.VERTICAL or
SwingConstants.HORIZONTAL. |
void |
setString(String s)
Sets the value of the progress string. |
void |
setStringPainted(boolean b)
Sets the value of the stringPainted property,
which determines whether the progress bar
should render a progress string. |
void |
setUI(ProgressBarUI ui)
Sets the look-and-feel object that renders this component. |
void |
setValue(int n)
Sets the progress bar's current value to n. |
void |
updateUI()
Resets the UI property to a value from the current look and feel. |
| Methods inherited from class javax.swing.JComponent |
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update |
| Methods inherited from class java.awt.Container |
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree |
| Methods inherited from class java.awt.Component |
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle |
orientation
protected int orientation
- Whether the progress bar is horizontal or vertical.
The default is
HORIZONTAL.
- See Also:
setOrientation(int)
paintBorder
protected boolean paintBorder
- Whether to display a border around the progress bar.
The default is
true.
- See Also:
setBorderPainted(boolean)
model
protected BoundedRangeModel model
- The object that holds the data for the progress bar.
- See Also:
setModel(javax.swing.BoundedRangeModel)
progressString
protected String progressString
- 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.
- See Also:
setString(java.lang.String),
setStringPainted(boolean)
paintString
protected boolean paintString
- 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.
- See Also:
setStringPainted(boolean),
setString(java.lang.String)
changeEvent
protected transient ChangeEvent changeEvent
- 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.
- See Also:
fireStateChanged()
changeListener
protected ChangeListener changeListener
- Listens for change events sent by the progress bar's model,
redispatching them
to change-event listeners registered upon
this progress bar.
- See Also:
createChangeListener()
JProgressBar
public JProgressBar()
- 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.
- See Also:
setOrientation(int),
setBorderPainted(boolean),
setStringPainted(boolean),
setString(java.lang.String),
setIndeterminate(boolean)
JProgressBar
public JProgressBar(int orient)
- 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.
- Parameters:
orient - the desired orientation of the progress bar
- Throws:
IllegalArgumentException - if orient is an illegal value- See Also:
setOrientation(int),
setBorderPainted(boolean),
setStringPainted(boolean),
setString(java.lang.String),
setIndeterminate(boolean)
JProgressBar
public JProgressBar(int min,
int max)
- 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.
- Parameters:
min - the minimum value of the progress barmax - the maximum value of the progress bar- See Also:
BoundedRangeModel,
setOrientation(int),
setBorderPainted(boolean),
setStringPainted(boolean),
setString(java.lang.String),
setIndeterminate(boolean)
JProgressBar
public JProgressBar(int orient,
int min,
int max)
- 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.
- Parameters:
orient - the desired orientation of the progress barmin - the minimum value of the progress barmax - the maximum value of the progress bar
- Throws:
IllegalArgumentException - if orient is an illegal value- See Also:
BoundedRangeModel,
setOrientation(int),
setBorderPainted(boolean),
setStringPainted(boolean),
setString(java.lang.String),
setIndeterminate(boolean)
JProgressBar
public JProgressBar(BoundedRangeModel newModel)
- 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.
- Parameters:
newModel - the data model for the progress bar- See Also:
setOrientation(int),
setBorderPainted(boolean),
setStringPainted(boolean),
setString(java.lang.String),
setIndeterminate(boolean)
getOrientation
public int getOrientation()
- Returns
SwingConstants.VERTICAL or
SwingConstants.HORIZONTAL, depending on the orientation
of the progress bar. The default orientation is
SwingConstants.HORIZONTAL.
- Returns:
HORIZONTAL or VERTICAL- See Also:
setOrientation(int)
setOrientation
public void setOrientation(int newOrientation)
- Sets the progress bar's orientation to
newOrientation,
which must be SwingConstants.VERTICAL or
SwingConstants.HORIZONTAL. The default orientation
is SwingConstants.HORIZONTAL.
- Parameters:
newOrientation - HORIZONTAL or VERTICAL
- Throws:
IllegalArgumentException - if newOrientation
is an illegal value- See Also:
getOrientation()
isStringPainted
public boolean isStringPainted()
- Returns the value of the
stringPainted property.
- Returns:
- the value of the
stringPainted property - See Also:
setStringPainted(boolean),
setString(java.lang.String)
setStringPainted
public void setStringPainted(boolean b)
- 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.
- Parameters:
b - true if the progress bar should render a string- See Also:
isStringPainted(),
setString(java.lang.String)
getString
public String getString()
- 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.
- Returns:
- the value of the progress string, or a simple percentage string
if the progress string is
null - See Also:
setString(java.lang.String)
setString
public void setString(String s)
- 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.
- Parameters:
s - the value of the progress string- See Also:
getString(),
setStringPainted(boolean),
isStringPainted()
getPercentComplete
public double getPercentComplete()
- Returns the percent complete for the progress bar.
Note that this number is between 0.0 and 1.0.
- Returns:
- the percent complete for this progress bar
isBorderPainted
public boolean isBorderPainted()
- Returns the
borderPainted property.
- Returns:
- the value of the
borderPainted property - See Also:
setBorderPainted(boolean)
setBorderPainted
public void setBorderPainted(boolean b)
- 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.
- Parameters:
b - true if the progress bar
should paint its border;
otherwise, false- See Also:
isBorderPainted()
paintBorder
protected void paintBorder(Graphics g)
- Paints the progress bar's border if the
borderPainted
property is true.
- Overrides:
paintBorder in class JComponent
- Parameters:
g - the Graphics context within which to paint the border- See Also:
JComponent.paint(java.awt.Graphics),
JComponent.setBorder(javax.swing.border.Border),
isBorderPainted(),
setBorderPainted(boolean)
getUI
public ProgressBarUI getUI()
- Returns the look-and-feel object that renders this component.
- Returns:
- the
ProgressBarUI object that renders this component
setUI
public void setUI(ProgressBarUI ui)
- Sets the look-and-feel object that renders this component.
- Parameters:
ui - a ProgressBarUI object- See Also:
UIDefaults.getUI(javax.swing.JComponent)
updateUI
public void updateUI()
- Resets the UI property to a value from the current look and feel.
- Overrides:
updateUI in class JComponent
- See Also:
JComponent.updateUI()
getUIClassID
public String getUIClassID()
- Returns the name of the look-and-feel class that renders this component.
- Overrides:
getUIClassID in class JComponent
- Returns:
- the string "ProgressBarUI"
- See Also:
JComponent.getUIClassID(),
UIDefaults.getUI(javax.swing.JComponent)
createChangeListener
protected ChangeListener createChangeListener()
- 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 ChangeEvents
to the ChangeListeners that have been added directly to the
progress bar.
- See Also:
changeListener,
fireStateChanged(),
ChangeListener,
BoundedRangeModel
addChangeListener
public void addChangeListener(ChangeListener l)
- Adds the specified
ChangeListener to the progress bar.
- Parameters:
l - the ChangeListener to add
removeChangeListener
public void removeChangeListener(ChangeListener l)
- Removes a
ChangeListener from the progress bar.
- Parameters:
l - the ChangeListener to remove
getChangeListeners
public ChangeListener[] getChangeListeners()
- Returns an array of all the
ChangeListeners added
to this progress bar with addChangeListener.
- Returns:
- all of the
ChangeListeners added or an empty
array if no listeners have been added - Since:
- 1.4
fireStateChanged
protected void fireStateChanged()
- Send a
ChangeEvent, whose source is this JProgressBar, to
all ChangeListeners that have registered interest in
ChangeEvents.
This method is called each time a ChangeEvent is received from
the model.
The event instance is created if necessary, and stored in
changeEvent.
- See Also:
addChangeListener(javax.swing.event.ChangeListener),
EventListenerList
getModel
public BoundedRangeModel getModel()
- Returns the data model used by this progress bar.
- Returns:
- the
BoundedRangeModel currently in use - See Also:
setModel(javax.swing.BoundedRangeModel),
BoundedRangeModel
setModel
public void setModel(BoundedRangeModel newModel)
- Sets the data model used by the
JProgressBar.
Note that the BoundedRangeModel's extent is not used,
and is set to 0.
- Parameters:
newModel - the BoundedRangeModel to use
getValue
public int getValue()
- Returns the progress bar's current
value
from the BoundedRangeModel.
The value is always between the
minimum and maximum values, inclusive.
- Returns:
- the current value of the progress bar
- See Also:
setValue(int),
BoundedRangeModel.getValue()
getMinimum
public int getMinimum()
- Returns the progress bar's
minimum value
from the BoundedRangeModel.
- Returns:
- the progress bar's minimum value
- See Also:
setMinimum(int),
BoundedRangeModel.getMinimum()
getMaximum
public int getMaximum()
- Returns the progress bar's
maximum value
from the BoundedRangeModel.
- Returns:
- the progress bar's maximum value
- See Also:
setMaximum(int),
BoundedRangeModel.getMaximum()
setValue
public void setValue(int n)
- 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 liste |