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.AccessibleJComponent
Container.AccessibleAWTContainer
Component.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_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
ABORT, 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, update
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, validateTree
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, 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, transferFocusUpCycle
protected 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