- 所有已实现的接口:
-
ImageObserver,MenuContainer,Serializable,Accessible,SwingConstants
JProgressBar 使用一个 BoundedRangeModel 作为其数据模型,其中 value 属性表示任务的“当前”状态,而 minimum 和 maximum 属性分别表示开始和结束点。
为了指示正在执行一个未知长度的任务,您可以将进度条放入不定模式。当进度条处于不定模式时,它会不断地动画显示工作正在进行。一旦您可以确定任务的长度和进度量,您应该更新进度条的值并将其切换回确定模式。
这里是创建一个进度条的示例,其中 task 是一个对象(代表一些工作),它返回有关任务进度的信息:
progressBar = new JProgressBar(0, task.getLengthOfTask()); progressBar.setValue(0); progressBar.setStringPainted(true);这里是查询任务当前状态的示例,并使用返回的值来更新进度条:
progressBar.setValue(task.getCurrent());这里是将进度条放入不定模式的示例,然后一旦知道任务的长度就切换回确定模式:
progressBar = new JProgressBar(); ...//当开始一个(最初)未知长度的任务时: progressBar.setIndeterminate(true); ...//做一些工作; 获取任务长度... progressBar.setMaximum(newLength); progressBar.setValue(newValue); progressBar.setIndeterminate(false);
有关完整示例和进一步文档,请参阅 如何监视进度,这是 The Java Tutorial 中的一个部分。
警告: Swing 不是线程安全的。更多信息请参见 Swing 的线程策略。
警告: 该类的序列化对象将不兼容未来的 Swing 版本。当前的序列化支持适用于短期存储或在运行相同版本 Swing 的应用程序之间的 RMI。从 1.4 版开始,已将所有 JavaBeans 的长期存储支持添加到 java.beans 包中。请参见 XMLEncoder。
- 自 JDK 版本:
- 1.2
- 参见:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class该类为JProgressBar类实现了辅助功能支持。Nested classes/interfaces declared in class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces declared in class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces declared in class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ChangeEvent每个实例只需要一个ChangeEvent,因为事件的唯一有趣属性是不可变的源,即进度条。protected ChangeListener监听由进度条模型发送的更改事件,并将其重新分派给在此进度条上注册的更改事件监听器。protected BoundedRangeModel保存进度条数据的对象。protected int进度条是水平的还是垂直的。protected boolean是否在进度条周围显示边框。protected boolean是否在进度条上显示文本字符串。protected String可以显示在进度条上的可选字符串。Fields declared in class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields declared in class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields declared in 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
ConstructorsConstructorDescription创建一个水平进度条,显示边框但不显示进度字符串。JProgressBar(int orient) 创建具有指定方向的进度条,可以是SwingConstants.VERTICAL或SwingConstants.HORIZONTAL。JProgressBar(int min, int max) 创建具有指定最小值和最大值的水平进度条。JProgressBar(int orient, int min, int max) 使用指定的方向、最小值和最大值创建进度条。JProgressBar(BoundedRangeModel newModel) 创建一个使用指定模型保存进度条数据的水平进度条。 -
Method Summary
Modifier and TypeMethodDescriptionvoid将指定的ChangeListener添加到进度条。protected ChangeListener希望以不同方式处理来自模型的更改事件的子类可以重写此方法以返回自定义ChangeListener实现的实例。protected void向所有已注册对ChangeEvent感兴趣的ChangeListener发送一个ChangeEvent,其源是这个JProgressBar。获取与此JProgressBar关联的AccessibleContext。返回使用addChangeListener添加到此进度条的所有ChangeListener的数组。int从BoundedRangeModel返回进度条的maximum值。int从BoundedRangeModel返回进度条的minimum值。getModel()返回此进度条使用的数据模型。int根据进度条的方向返回SwingConstants.VERTICAL或SwingConstants.HORIZONTAL。double返回进度条的完成百分比。返回当前进度的String表示。getUI()返回呈现此组件的外观对象。返回呈现此组件的外观类的名称。intgetValue()从BoundedRangeModel返回进度条的当前value。boolean返回borderPainted属性的值。boolean返回indeterminate属性的值。boolean返回stringPainted属性的值。protected void如果borderPainted属性为true,则绘制进度条的边框。protected String返回此JProgressBar的字符串表示形式。void从进度条中删除一个ChangeListener。voidsetBorderPainted(boolean b) 设置borderPainted属性,如果进度条应该绘制其边框,则为true。voidsetIndeterminate(boolean newValue) 设置进度条的indeterminate属性,确定进度条是在确定模式还是不定模式。voidsetMaximum(int n) 将进度条的最大值(存储在进度条的数据模型中)设置为n。voidsetMinimum(int n) 将进度条的最小值(存储在进度条的数据模型中)设置为n。voidsetModel(BoundedRangeModel newModel) 设置JProgressBar使用的数据模型。voidsetOrientation(int newOrientation) 将进度条的方向设置为newOrientation,它必须是SwingConstants.VERTICAL或SwingConstants.HORIZONTAL。void设置进度字符串的值。voidsetStringPainted(boolean b) 设置stringPainted属性的值,确定进度条是否应该呈现进度字符串。voidsetUI(ProgressBarUI ui) 设置呈现此组件的外观对象。voidsetValue(int n) 将进度条的当前值设置为n。voidupdateUI()将 UI 属性重置为当前外观的值。Methods declared in class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, updateMethods declared in 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, transferFocusDownCycle, validate, validateTreeMethods declared in 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
orientation
protected int orientation进度条是水平的还是垂直的。默认为HORIZONTAL。- 参见:
-
paintBorder
protected boolean paintBorder是否在进度条周围显示边框。默认为true。- 参见:
-
model
保存进度条数据的对象。- 参见:
-
progressString
可以在进度条上显示的可选字符串。默认为null。将其设置为非null值并不意味着该字符串将被显示。要显示字符串,必须将paintString设置为true。- 参见:
-
paintString
protected boolean paintString是否在进度条上显示文本字符串。默认为false。将其设置为true会导致在进度条上呈现进度的文本显示。如果progressString为null,则在进度条上显示完成百分比。否则,在进度条上呈现progressString。- 参见:
-
changeEvent
每个实例只需要一个ChangeEvent,因为事件的唯一有趣属性是不可变的源,即进度条。第一次触发事件通知时,事件会被延迟创建。- 参见:
-
changeListener
监听进度条模型发送的更改事件,并将其重新分派给在此进度条上注册的更改事件监听器。- 参见:
-
-
Constructor Details
-
JProgressBar
public JProgressBar()创建一个水平进度条,显示边框但不显示进度字符串。初始值和最小值为0,最大值为100。- 参见:
-
JProgressBar
public JProgressBar(int orient) 使用指定的方向创建进度条,可以是SwingConstants.VERTICAL或SwingConstants.HORIZONTAL。默认情况下,绘制边框但不显示进度字符串。初始值和最小值为0,最大值为100。- 参数:
-
orient- 进度条的期望方向 - 抛出:
-
IllegalArgumentException- 如果orient是非法值 - 参见:
-
JProgressBar
public JProgressBar(int min, int max) 使用指定的最小值和最大值创建水平进度条。将进度条的初始值设置为指定的最小值。默认情况下,绘制边框但不显示进度字符串。保存进度条数据的
BoundedRangeModel处理可能由于不正确设置进度条的最小值、初始值和最大值而出现的任何问题。有关详细信息,请参阅BoundedRangeModel文档。- 参数:
-
min- 进度条的最小值 -
max- 进度条的最大值 - 参见:
-
JProgressBar
public JProgressBar(int orient, int min, int max) 使用指定的方向、最小值和最大值创建进度条。默认情况下,绘制边框但不显示进度字符串。将进度条的初始值设置为指定的最小值。保存进度条数据的
BoundedRangeModel处理可能由于不正确设置进度条的最小值、初始值和最大值而出现的任何问题。有关详细信息,请参阅BoundedRangeModel文档。- 参数:
-
orient- 进度条的期望方向 -
min- 进度条的最小值 -
max- 进度条的最大值 - 抛出:
-
IllegalArgumentException- 如果orient是非法值 - 参见:
-
JProgressBar
使用指定的模型创建水平进度条以保存进度条的数据。默认情况下,绘制边框但不显示进度字符串。- 参数:
-
newModel- 进度条的数据模型 - 参见:
-
-
Method Details
-
getOrientation
public int getOrientation()返回SwingConstants.VERTICAL或SwingConstants.HORIZONTAL,取决于进度条的方向。默认方向为SwingConstants.HORIZONTAL。- 返回:
-
HORIZONTAL或VERTICAL - 参见:
-
setOrientation
@BeanProperty(preferred=true, visualUpdate=true, description="Set the progress bar\'s orientation.") public void setOrientation(int newOrientation) 将进度条的方向设置为newOrientation,必须是SwingConstants.VERTICAL或SwingConstants.HORIZONTAL。默认方向为SwingConstants.HORIZONTAL。- 参数:
-
newOrientation-HORIZONTAL或VERTICAL - 抛出:
-
IllegalArgumentException- 如果newOrientation是非法值 - 参见:
-
isStringPainted
public boolean isStringPainted()返回stringPainted属性的值。- 返回:
-
stringPainted属性的值 - 参见:
-
setStringPainted
@BeanProperty(visualUpdate=true, description="Whether the progress bar should render a string.") public void setStringPainted(boolean b) 设置stringPainted属性的值,确定进度条是否应该呈现进度字符串。默认值为false,表示不绘制任何字符串。某些外观和感觉可能不支持进度字符串,或者仅在进度条处于确定模式时支持。- 参数:
-
b- 如果进度条应该呈现字符串,则为true - 参见:
-
getString
返回当前进度的String表示。默认情况下,这将返回基于getPercentComplete返回值的简单百分比String。例如,"42%"。您可以通过调用setString来更改这个值。- 返回:
-
进度字符串的值,如果进度字符串为
null,则返回简单百分比字符串 - 参见:
-
setString
@BeanProperty(visualUpdate=true, description="Specifies the progress string to paint") public void setString(String s) 设置进度字符串的值。默认情况下,此字符串为null,意味着使用简单的百分比字符串的内置行为。如果您提供了自定义进度字符串并希望恢复为内置行为,请将字符串设置回null。只有当
isStringPainted方法返回true时才会绘制进度字符串。- 参数:
-
s- 进度字符串的值 - 参见:
-
getPercentComplete
返回进度条的完成百分比。请注意,此数字介于0.0和1.0之间。- 返回:
- 此进度条的完成百分比
-
isBorderPainted
public boolean isBorderPainted()返回borderPainted属性。- 返回:
-
borderPainted属性的值 - 参见:
-
setBorderPainted
@BeanProperty(visualUpdate=true, description="Whether the progress bar should paint its border.") public void setBorderPainted(boolean b) 设置borderPainted属性,如果进度条应该绘制其边框,则为true。此属性的默认值为true。某些外观和感觉可能不实现绘制边框;它们将忽略此属性。- 参数:
-
b- 如果进度条应该绘制其边框,则为true;否则为false - 参见:
-
paintBorder
如果borderPainted属性为true,则绘制进度条的边框。- 覆盖:
-
paintBorder在类JComponent中 - 参数:
-
g- 用于绘制边框的Graphics上下文 - 参见:
-
getUI
返回渲染此组件的外观对象。- 覆盖:
-
getUI在类JComponent中 - 返回:
-
渲染此组件的
ProgressBarUI对象
-
setUI
@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component\'s LookAndFeel.") public void setUI(ProgressBarUI ui) 设置渲染此组件的外观对象。- 参数:
-
ui- 一个ProgressBarUI对象 - 参见:
-
updateUI
public void updateUI()将UI属性重置为当前外观的值。- 覆盖:
-
updateUI在类JComponent中 - 参见:
-
getUIClassID
@BeanProperty(bound=false, expert=true, description="A string that specifies the name of the look-and-feel class.") public String getUIClassID()返回渲染此组件的外观类的名称。- 覆盖:
-
getUIClassID在类JComponent中 - 返回:
- 字符串"ProgressBarUI"
- 参见:
-
createChangeListener
想要以不同方式处理模型的更改事件的子类可以覆盖此方法,以返回自定义ChangeListener实现的实例。默认的ChangeListener只是调用fireStateChanged方法,将ChangeEvent转发给直接添加到进度条的ChangeListener。- 返回:
-
自定义
ChangeListener实现的实例。 - 参见:
-
addChangeListener
向进度条添加指定的ChangeListener。- 参数:
-
l- 要添加的ChangeListener
-
removeChangeListener
从进度条中移除ChangeListener。- 参数:
-
l- 要移除的ChangeListener
-
getChangeListeners
返回使用addChangeListener添加到此进度条的所有ChangeListener的数组。- 返回:
-
所有已添加的
ChangeListener或如果未添加任何侦听器,则返回空数组 - 自:
- 1.4
-
fireStateChanged
protected void fireStateChanged()发送一个ChangeEvent,其源是此JProgressBar,到所有已注册对ChangeEvent感兴趣的ChangeListener。每次从模型接收ChangeEvent时都会调用此方法。如有必要,将创建事件实例,并将其存储在
changeEvent中。- 参见:
-
getModel
返回此进度条使用的数据模型。- 返回:
-
当前正在使用的
BoundedRangeModel - 参见:
-
setModel
@BeanProperty(bound=false, expert=true, description="The data model used by the JProgressBar.") public void setModel(BoundedRangeModel newModel) 设置JProgressBar使用的数据模型。请注意,不使用BoundedRangeModel的extent,并将其设置为0。- 参数:
-
newModel- 要使用的BoundedRangeModel
-
getValue
public int getValue()从BoundedRangeModel中返回进度条的当前value。该值始终在最小值和最大值之间,包括最小值和最大值。- 返回:
- 进度条的当前值
- 参见:
-
getMinimum
public int getMinimum()从BoundedRangeModel中返回进度条的minimum值。- 返回:
- 进度条的最小值
- 参见:
-
getMaximum
public int getMaximum()从BoundedRangeModel中返回进度条的maximum值。- 返回:
- 进度条的最大值
- 参见:
-
setValue
@BeanProperty(bound=false, preferred=true, description="The progress bar\'s current value.") public void setValue(int n) 将进度条的当前值设置为n。此方法将新值转发给模型。数据模型(
BoundedRangeModel的一个实例)处理由于分配错误值而引起的任何数学问题。有关详细信息,请参阅BoundedRangeModel文档。如果新值与先前值不同,则会通知所有更改侦听器。
- 参数:
-
n- 新值 - 参见:
-
setMinimum
@BeanProperty(bound=false, preferred=true, description="The progress bar\'s minimum value.") public void setMinimum(int n) 将进度条的最小值(存储在进度条的数据模型中)设置为n。数据模型(一个
BoundedRangeModel实例)处理由于分配错误值而引起的任何数学问题。有关详细信息,请参阅BoundedRangeModel文档。如果最小值与先前最小值不同,则会通知所有更改侦听器。
- 参数:
-
n- 新最小值 - 参见:
-
setMaximum
@BeanProperty(bound=false, preferred=true, description="The progress bar\'s maximum value.") public void setMaximum(int n) 将进度条的最大值(存储在进度条的数据模型中)设置为n。底层的
BoundedRangeModel处理由于分配错误值而引起的任何数学问题。有关详细信息,请参阅BoundedRangeModel文档。如果最大值与先前最大值不同,则会通知所有更改侦听器。
- 参数:
-
n- 新最大值 - 参见:
-
setIndeterminate
public void setIndeterminate(boolean newValue) 设置进度条的indeterminate属性,确定进度条是处于确定模式还是不确定模式。不确定进度条持续显示动画,指示正在进行长度未知的操作。默认情况下,此属性为false。某些外观和感觉可能不支持不确定进度条;它们将忽略此属性。请参阅如何监视进度,了解使用不确定进度条的示例。
- 参数:
-
newValue- 如果进度条应更改为不确定模式,则为true;如果应恢复为正常模式,则为false。 - 自:
- 1.4
- 参见:
-
isIndeterminate
@BeanProperty(bound=false, description="Is the progress bar indeterminate (true) or normal (false)?") public boolean isIndeterminate()返回indeterminate属性的值。- 返回值:
-
indeterminate属性的值 - 自从:
- 1.4
- 参见:
-
paramString
返回此JProgressBar的字符串表示形式。此方法仅用于调试目的。返回的字符串的内容和格式可能因实现而异。返回的字符串可能为空,但不会是null。- 覆盖:
-
paramString在类JComponent - 返回值:
-
此
JProgressBar的字符串表示形式
-
getAccessibleContext
@BeanProperty(bound=false, expert=true, description="The AccessibleContext associated with this ProgressBar.") public AccessibleContext getAccessibleContext()获取与此JProgressBar关联的AccessibleContext。对于进度条,AccessibleContext采用AccessibleJProgressBar的形式。如有必要,将创建一个新的AccessibleJProgressBar实例。- 指定者:
-
getAccessibleContext在接口Accessible - 覆盖:
-
getAccessibleContext在类Component - 返回值:
-
作为此
JProgressBar的AccessibleContext的AccessibleJProgressBar
-