public class JProgressBar extends JComponent implements SwingConstants, Accessible
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();
...//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);
有关完整的示例和进一步的文档,请参阅How to Monitor Progress “Java教程 ”中的一节。
警告: Swing不是线程安全的。 有关更多信息,请参阅Swing's Threading Policy 。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,对所有JavaBeans的长期存储的支持已经添加到java.beans包中。 请参阅XMLEncoder 。
BasicProgressBarUI , BoundedRangeModel , SwingWorker
| Modifier and Type | Class and Description |
|---|---|
protected class |
JProgressBar.AccessibleJProgressBar
该类实现对
JProgressBar类的可访问性支持。
|
JComponent.AccessibleJComponentContainer.AccessibleAWTContainerComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy| Modifier and Type | Field and Description |
|---|---|
protected ChangeEvent |
changeEvent
每个实例只需要一个
ChangeEvent ,因为事件唯一有趣的属性是不可变源,即进度条。
|
protected ChangeListener |
changeListener
监听进度条模型发送的更改事件,将其重新分配到此进度条上注册的更改事件侦听器。
|
protected BoundedRangeModel |
model
保存进度条数据的对象。
|
protected int |
orientation
进度条是水平还是垂直。
|
protected boolean |
paintBorder
是否在进度条周围显示边框。
|
protected boolean |
paintString
是否在进度条上显示文本字符串。
|
protected String |
progressString
可以在进度条上显示的可选字符串。
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTBOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WESTABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH| Constructor and Description |
|---|
JProgressBar()
创建一个显示边框但没有进度字符串的水平进度条。
|
JProgressBar(BoundedRangeModel newModel)
创建一个水平进度条,使用指定的模型来保存进度条的数据。
|
JProgressBar(int orient)
创建具有指定方向的进度条,可以是
SwingConstants.VERTICAL或
SwingConstants.HORIZONTAL 。
|
JProgressBar(int min, int max)
创建具有指定的最小和最大值的水平进度条。
|
JProgressBar(int orient, int min, int max)
使用指定的方向,最小和最大值创建进度条。
|
| Modifier and Type | Method and Description |
|---|---|
void |
addChangeListener(ChangeListener l)
将指定的ChangeListener
ChangeListener到进度条。
|
protected ChangeListener |
createChangeListener()
想要处理来自模型的更改事件的子类不同,可以重写此返回一个自定义
ChangeListener实现的实例。
|
protected void |
fireStateChanged()
发送一个
ChangeEvent ,其来源是这
JProgressBar ,所有
ChangeListener s已注册兴趣在
ChangeEvent s。
|
AccessibleContext |
getAccessibleContext()
获取
AccessibleContext与此相关
JProgressBar 。
|
ChangeListener[] |
getChangeListeners()
返回所有的数组
ChangeListener加入到这一进度条以s
addChangeListener 。
|
int |
getMaximum()
从
BoundedRangeModel返回进度条的
maximum值。
|
int |
getMinimum()
从
BoundedRangeModel返回进度条的
minimum值。
|
BoundedRangeModel |
getModel()
返回此进度条使用的数据模型。
|
int |
getOrientation()
返回
SwingConstants.VERTICAL或
SwingConstants.HORIZONTAL ,具体取决于进度条的方向。
|
double |
getPercentComplete()
返回进度条的完成百分比。
|
String |
getString()
返回当前进度的
String表示。
|
ProgressBarUI |
getUI()
返回渲染此组件的外观和对象。
|
String |
getUIClassID()
返回渲染此组件的look-and-feel类的名称。
|
int |
getValue()
进度条的电流返回
value从
BoundedRangeModel 。
|
boolean |
isBorderPainted()
返回
borderPainted属性。
|
boolean |
isIndeterminate()
返回
indeterminate属性的值。
|
boolean |
isStringPainted()
返回
stringPainted属性的值。
|
protected void |
paintBorder(Graphics g)
如果
borderPainted属性为
true则绘制进度条的边框。
|
protected String |
paramString()
返回此
JProgressBar的字符串表示
JProgressBar 。
|
void |
removeChangeListener(ChangeListener l)
从进度条中删除一个
ChangeListener 。
|
void |
setBorderPainted(boolean b)
设置
borderPainted属性,如果进度条应该绘制其边框,则为
true 。
|
void |
setIndeterminate(boolean newValue)
设置进度条的
indeterminate属性,该属性确定进度条是否处于确定或不确定模式。
|
void |
setMaximum(int n)
将进度条的最大值(存储在进度条的数据模型中)设置为
n 。
|
void |
setMinimum(int n)
将进度条的最小值(存储在进度条的数据模型中)设置为
n 。
|
void |
setModel(BoundedRangeModel newModel)
设置
JProgressBar使用的数据模型。
|
void |
setOrientation(int newOrientation)
将进度条的方向设置为
newOrientation ,必须为
SwingConstants.VERTICAL或
SwingConstants.HORIZONTAL 。
|
void |
setString(String s)
设置进度字符串的值。
|
void |
setStringPainted(boolean b)
设置
stringPainted属性的值,该属性确定进度条是否应呈现进度字符串。
|
void |
setUI(ProgressBarUI ui)
设置渲染此组件的外观和对象。
|
void |
setValue(int n)
将进度条的当前值设置为
n 。
|
void |
updateUI()
将UI属性重置为当前外观的值。
|
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, 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, updateadd, 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, validateTreeaction, 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, 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, transferFocusBackward, transferFocusUpCycleprotected int orientation
HORIZONTAL 。
setOrientation(int)
protected boolean paintBorder
true 。
protected BoundedRangeModel model
protected String progressString
null 。
将其设置为非null值并不意味着将显示该字符串。
要显示字符串, paintString必须是true 。
protected boolean paintString
false 。
将其设置为true会导致在进度条上显示要呈现的进度的文本显示。
如果progressString为null ,则完成百分比显示在进度条上。
否则,将在进度条上呈现progressString 。
protected transient ChangeEvent changeEvent
ChangeEvent ,因为事件唯一有趣的属性是不可变的源,即进度条。
事件首次在事件通知被触发时被懒惰地创建。
fireStateChanged()
protected ChangeListener changeListener
createChangeListener()
public JProgressBar()
public JProgressBar(int orient)
SwingConstants.VERTICAL或SwingConstants.HORIZONTAL 。
默认情况下,绘制边框,但没有进度字符串。
初始值和最小值为0,最大值为100。
orient - 进度条所需的方向
IllegalArgumentException - 如果
orient是非法值
setOrientation(int) ,
setBorderPainted(boolean) ,
setStringPainted(boolean) ,
setString(java.lang.String) ,
setIndeterminate(boolean)
public JProgressBar(int min,
int max)
该BoundedRangeModel保存进度条的数据处理,可能不正确地设置了最小值,初始,并在进度条上的最大值出现的任何问题。 有关详细信息,请参阅BoundedRangeModel文档。
min - 进度条的最小值
max - 进度条的最大值
BoundedRangeModel , setOrientation(int) , setBorderPainted(boolean) , setStringPainted(boolean) , setString(java.lang.String) , setIndeterminate(boolean)
public JProgressBar(int orient,
int min,
int max)
该BoundedRangeModel保存进度条的数据处理,可能不正确地设置了最小值,初始,并在进度条上的最大值出现的任何问题。 有关详细信息,请参阅BoundedRangeModel文档。
orient - 进度条的所需方向
min - 进度条的最小值
max - 进度条的最大值
IllegalArgumentException - 如果
orient是非法值
BoundedRangeModel , setOrientation(int) , setBorderPainted(boolean) , setStringPainted(boolean) , setString(java.lang.String) , setIndeterminate(boolean)
public JProgressBar(BoundedRangeModel newModel)
newModel - 进度条的数据模型
setOrientation(int) ,
setBorderPainted(boolean) ,
setStringPainted(boolean) ,
setString(java.lang.String) ,
setIndeterminate(boolean)
public int getOrientation()
SwingConstants.VERTICAL或SwingConstants.HORIZONTAL ,具体取决于进度条的方向。
默认方向为SwingConstants.HORIZONTAL 。
HORIZONTAL或
VERTICAL
setOrientation(int)
public void setOrientation(int newOrientation)
newOrientation ,必须为SwingConstants.VERTICAL或SwingConstants.HORIZONTAL 。
默认方向为SwingConstants.HORIZONTAL 。
newOrientation -
HORIZONTAL或
VERTICAL
IllegalArgumentException - 如果
newOrientation是非法值
getOrientation()
public boolean isStringPainted()
stringPainted属性的值。
stringPainted属性
setStringPainted(boolean) ,
setString(java.lang.String)
public void setStringPainted(boolean b)
stringPainted属性的值,该属性确定进度条是否应呈现进度字符串。
默认值为false ,意思是没有字符串被画。
某些外观和感觉可能不支持进度字符串,或只有当进度条处于确定模式时才支持它们。
b -
true如果进度条应该呈现一个字符串
isStringPainted() ,
setString(java.lang.String)
public String getString()
String表示。
默认情况下,这将返回一个简单的百分比String基于从getPercentComplete返回的值。
一个例子就是“42%”。
您可以通过致电setString进行更改。
null的简单百分比字符串
setString(java.lang.String)
public void setString(String s)
null ,这意味着使用简单百分比字符串的内置行为。
如果您提供了自定义的进度字符串,并希望还原到内置行为,请将该字符串设置为null 。
只有当isStringPainted方法返回true ,进度字符串true 。
s - 进度字符串的值
getString() ,
setStringPainted(boolean) ,
isStringPainted()
public double getPercentComplete()
public boolean isBorderPainted()
borderPainted属性。
borderPainted属性
setBorderPainted(boolean)
public void setBorderPainted(boolean b)
borderPainted属性,如果进度条应该绘制其边框,则为true 。
此属性的默认值为true 。
一些外观和感觉可能不会实现画边框;
他们将忽略此属性。
b - true如果进度条应该绘制其边框;
否则, false
isBorderPainted()
protected void paintBorder(Graphics g)
borderPainted属性为
true则绘制进度条的边框。
paintBorder在
JComponent
g - 要绘制边框的
Graphics上下文
JComponent.paint(java.awt.Graphics) ,
JComponent.setBorder(javax.swing.border.Border) ,
isBorderPainted() ,
setBorderPainted(boolean)
public ProgressBarUI getUI()
ProgressBarUI对象
public void setUI(ProgressBarUI ui)
ui - 一个
ProgressBarUI对象
UIDefaults.getUI(javax.swing.JComponent)
public void updateUI()
updateUI在
JComponent
JComponent.updateUI()
public String getUIClassID()
getUIClassID在
JComponent
JComponent.getUIClassID() ,
UIDefaults.getUI(javax.swing.JComponent)
protected ChangeListener createChangeListener()
ChangeListener实现的实例。
默认的ChangeListener只需调用fireStateChanged方法将ChangeEvent s转至直接添加到进度条的ChangeListener 。
public void addChangeListener(ChangeListener l)
ChangeListener到进度条。
l - 添加的
ChangeListener
public void removeChangeListener(ChangeListener l)
ChangeListener 。
l - 要删除的
ChangeListener
public ChangeListener[] getChangeListeners()
ChangeListener加入到这一进度条以s
addChangeListener 。
ChangeListener或一个空数组,如果没有添加听众
protected void fireStateChanged()
ChangeEvent ,其来源是这JProgressBar ,所有ChangeListener s已注册兴趣在ChangeEvent s。
每次从模型接收到一个ChangeEvent时都会调用此方法。
如果需要,创建事件实例,并存储在changeEvent 。
public BoundedRangeModel getModel()
BoundedRangeModel使用的
BoundedRangeModel
setModel(javax.swing.BoundedRangeModel) , BoundedRangeModel
public void setModel(BoundedRangeModel newModel)
JProgressBar使用的数据模型。
请注意, BoundedRangeModel的extent未使用,设置为0 。
newModel -
BoundedRangeModel使用
public int getValue()
value从BoundedRangeModel 。
该值始终在最小值和最大值之间,包括值。
setValue(int) ,
BoundedRangeModel.getValue()
public int getMinimum()
BoundedRangeModel返回进度条的
minimum值。
setMinimum(int) ,
BoundedRangeModel.getMinimum()
public int getMaximum()
BoundedRangeModel返回进度条的
maximum值。
setMaximum(int) ,
BoundedRangeModel.getMaximum()
public void setValue(int n)
n 。
该方法将新值转发到模型。
数据模型( BoundedRangeModel一个实例)处理从分配错误值引起的任何数学问题。 有关详细信息,请参阅BoundedRangeModel文档。
如果新值与上一个值不同,则会通知所有更改侦听器。
public void setMinimum(int n)
n 。
数据模型( BoundedRangeModel实例)处理从分配错误值引起的任何数学问题。 有关详细信息,请参阅BoundedRangeModel文档。
如果最小值与以前的最小值不同,则会通知所有更改侦听器。
n - 新的最低限度
getMinimum() ,
addChangeListener(javax.swing.event.ChangeListener) ,
BoundedRangeModel.setMinimum(int)
public void setMaximum(int n)
n 。
底层BoundedRangeModel处理从分配错误值引起的任何数学问题。 有关详细信息,请参阅BoundedRangeModel文档。
如果最大值与先前的最大值不同,则会通知所有更改侦听器。
n - 新的最大值
getMaximum() ,
addChangeListener(javax.swing.event.ChangeListener) ,
BoundedRangeModel.setMaximum(int)
public void setIndeterminate(boolean newValue)
indeterminate属性,该属性决定进度条是确定还是不确定的模式。
不确定的进度条不间断地显示动画,指示发生未知长度的操作。
默认情况下,此属性为false 。
有些看起来和感觉可能不支持不确定的进度条;
他们将忽略此属性。
有关使用不确定进度条的示例,请参阅How to Monitor Progress 。
newValue - true如果进度条应该改为不确定模式;
false如果它应该恢复正常。
isIndeterminate() , BasicProgressBarUI
public boolean isIndeterminate()
indeterminate属性的值。
indeterminate属性
setIndeterminate(boolean)
protected String paramString()
JProgressBar的字符串表示JProgressBar 。
该方法仅用于调试目的。
返回的字符串的内容和格式可能会有所不同。
返回的字符串可能为空,但可能不是null 。
paramString在
JComponent
JProgressBar的字符串表示
JProgressBar
public AccessibleContext getAccessibleContext()
AccessibleContext与此相关JProgressBar 。
对于进度条,在AccessibleContext需要一个形式AccessibleJProgressBar 。
如有必要,将创建一个新的AccessibleJProgressBar实例。
getAccessibleContext在接口
Accessible
getAccessibleContext在
Component
AccessibleJProgressBar ,作为
AccessibleContext这个
JProgressBar
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.