模块  java.desktop
软件包  javax.swing

Class JProgressBar

  • 实现的所有接口
    ImageObserverMenuContainerSerializableAccessibleSwingConstants

    @JavaBean(defaultProperty="UI",
              description="A component that displays an integer value.")
    public class JProgressBar
    extends JComponent
    implements SwingConstants, Accessible
    一个可视化显示某个任务进度的组件。 随着任务进展完成,进度条显示任务的完成百分比。 该百分比通常由一个矩形在视觉上表示,该矩形从空开始并随着任务的进行逐渐填充。 此外,进度条可以显示此百分比的文本表示。

    JProgressBar使用BoundedRangeModel作为其数据模型, value属性表示任务的“当前”状态, minimummaximum属性分别表示起点和终点。

    要指示正在执行未知长度的任务,您可以将进度条置于不确定模式。 虽然条形图处于不确定模式,但它会持续动画以显示正在进行的工作。 只要您可以确定任务的长度和进度,就应该更新进度条的值并将其切换回确定模式。

    以下是创建进度条的示例,其中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); 

    有关完整示例和更多文档,请参阅“Java教程” How to Monitor Progress部分

    警告: Swing不是线程安全的。 有关更多信息,请参阅Swing's Threading Policy

    警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始, java.beans软件包中添加了对所有JavaBeans java.beans长期存储的支持。 请参阅XMLEncoder

    从以下版本开始:
    1.2
    另请参见:
    BasicProgressBarUIBoundedRangeModelSwingWorkerSerialized Form
    • 字段详细信息

      • orientation

        protected int orientation
        进度条是水平还是垂直。 默认值为HORIZONTAL
        另请参见:
        setOrientation(int)
      • paintBorder

        protected boolean paintBorder
        是否在进度条周围显示边框。 默认值为true
        另请参见:
        setBorderPainted(boolean)
      • progressString

        protected String progressString
        可以在进度条上显示的可选字符串。 默认值为null 将此值设置为非null值并不表示将显示该字符串。 要显示字符串, paintString必须是true
        另请参见:
        setString(java.lang.String)setStringPainted(boolean)
      • paintString

        protected boolean paintString
        是否在进度条上显示一串文本。 默认值为false 将其设置为true会导致在进度条上呈现进度的文本显示。 如果progressStringnull ,则进度条上将显示完成百分比。 否则, progressString将在进度条上呈现。
        另请参见:
        setStringPainted(boolean)setString(java.lang.String)
      • changeEvent

        protected transient ChangeEvent changeEvent
        每个实例只需要一个ChangeEvent因为事件唯一有趣的属性是不可变源,即进度条。 第一次触发事件通知时,会延迟创建该事件。
        另请参见:
        fireStateChanged()
      • changeListener

        protected ChangeListener changeListener
        侦听进度条模型发送的更改事件,将它们重新分配给在此进度条上注册的更改事件侦听器。
        另请参见:
        createChangeListener()
    • 方法详细信息

      • getOrientation

        public int getOrientation()
        返回SwingConstants.VERTICALSwingConstants.HORIZONTAL ,具体取决于进度条的方向。 默认方向是SwingConstants.HORIZONTAL
        结果
        HORIZONTALVERTICAL
        另请参见:
        setOrientation(int)
      • setOrientation

        @BeanProperty(preferred=true,
                      visualUpdate=true,
                      description="Set the progress bar\'s orientation.")
        public void setOrientation​(int newOrientation)
        将进度条的方向设置为newOrientation ,必须为SwingConstants.VERTICALSwingConstants.HORIZONTAL 默认方向是SwingConstants.HORIZONTAL
        参数
        newOrientation - HORIZONTALVERTICAL
        异常
        IllegalArgumentException - 如果 newOrientation是非法值
        另请参见:
        getOrientation()
      • setStringPainted

        @BeanProperty(visualUpdate=true,
                      description="Whether the progress bar should render a string.")
        public void setStringPainted​(boolean b)
        设置stringPainted属性的值,该属性确定进度条是否应呈现进度字符串。 默认值为false ,表示未绘制任何字符串。 某些外观可能不支持进度字符串,或者仅当进度条处于确定模式时才支持它们。
        参数
        b - true如果进度条应呈现字符串
        另请参见:
        isStringPainted()setString(java.lang.String)
      • getString

        public String getString()
        返回当前进度的String表示。 默认情况下,这将返回一个简单的百分比String基于从返回的值getPercentComplete 一个例子是“42%”。 您可以致电setString进行更改。
        结果
        进度字符串的值,如果进度字符串为 null简单的百分比字符串
        另请参见:
        setString(java.lang.String)
      • setString

        @BeanProperty(visualUpdate=true,
                      description="Specifies the progress string to paint")
        public void setString​(String s)
        设置进度字符串的值。 默认情况下,此字符串为null ,表示使用简单百分比字符串的内置行为。 如果您提供了自定义进度字符串并希望恢复为内置行为,请将字符串设置回null

        仅当isStringPainted方法返回trueisStringPainted绘制进度字符串。

        参数
        s - 进度字符串的值
        另请参见:
        getString()setStringPainted(boolean)isStringPainted()
      • getPercentComplete

        @BeanProperty(bound=false)
        public double getPercentComplete()
        返回进度条的完成百分比。 请注意,此数字介于0.0和1.0之间。
        结果
        此进度条的完成百分比
      • isBorderPainted

        public boolean isBorderPainted()
        返回 borderPainted属性。
        结果
        borderPainted属性的值
        另请参见:
        setBorderPainted(boolean)
      • setBorderPainted

        @BeanProperty(visualUpdate=true,
                      description="Whether the progress bar should paint its border.")
        public void setBorderPainted​(boolean b)
        设置borderPainted属性,如果进度条应绘制其边框,则为true 此属性的默认值为true 有些外观可能无法实现彩绘边框; 他们会忽略这个属性。
        参数
        b - true如果进度条应绘制其边框; 否则, false
        另请参见:
        isBorderPainted()
      • getUI

        public ProgressBarUI getUI()
        返回呈现此组件的外观对象。
        重写:
        getUIJComponent
        结果
        呈现此组件的 ProgressBarUI对象
      • createChangeListener

        protected ChangeListener createChangeListener()
        想要以不同方式处理模型中的更改事件的子类可以重写此类以返回自定义ChangeListener实现的实例。 默认值ChangeListener只需调用fireStateChanged方法将ChangeEvent转发到已直接添加到进度条的ChangeListener
        结果
        自定义 ChangeListener实现的实例。
        另请参见:
        changeListenerfireStateChanged()ChangeListenerBoundedRangeModel
      • addChangeListener

        public void addChangeListener​(ChangeListener l)
        将指定的 ChangeListener添加到进度条。
        参数
        l - 要添加的 ChangeListener
      • removeChangeListener

        public void removeChangeListener​(ChangeListener l)
        从进度条中删除 ChangeListener
        参数
        l - 要删除的 ChangeListener
      • getChangeListeners

        @BeanProperty(bound=false)
        public ChangeListener[] getChangeListeners()
        返回所有的数组 ChangeListener加入到这一进度条带S addChangeListener
        结果
        如果没有添加任何侦听器,则添加所有 ChangeListener或空数组
        从以下版本开始:
        1.4
      • fireStateChanged

        protected void fireStateChanged()
        发送ChangeEvent ,其源为此JProgressBar ,所有ChangeListener已在注册兴趣小号ChangeEvent秒。 每次从模型接收到ChangeEvent时,都会调用此方法。

        如有必要,将创建事件实例,并将其存储在changeEvent

        另请参见:
        addChangeListener(javax.swing.event.ChangeListener)EventListenerList
      • setModel

        @BeanProperty(bound=false,
                      expert=true,
                      description="The data model used by the JProgressBar.")
        public void setModel​(BoundedRangeModel newModel)
        设置JProgressBar使用的数据模型。 请注意, BoundedRangeModelextent未使用,设置为0
        参数
        newModel - 要使用的 BoundedRangeModel
      • getValue

        public int getValue()
        进度条的电流返回valueBoundedRangeModel 值始终在最小值和最大值之间,包括在内。
        结果
        进度条的当前值
        另请参见:
        setValue(int)BoundedRangeModel.getValue()
      • setIndeterminate

        public void setIndeterminate​(boolean newValue)
        设置进度条的indeterminate属性,该属性确定进度条是处于确定模式还是不确定模式。 不确定的进度条连续显示动画,指示正在发生未知长度的操作。 默认情况下,此属性为false 一些外观和感觉可能不支持不确定的进度条; 他们会忽略这个属性。

        有关使用不确定进度条的示例,请参见How to Monitor Progress

        参数
        newValue - true如果进度条应更改为不确定模式; false是否应该恢复正常。
        从以下版本开始:
        1.4
        另请参见:
        isIndeterminate()BasicProgressBarUI
      • isIndeterminate

        @BeanProperty(bound=false,
                      description="Is the progress bar indeterminate (true) or normal (false)?")
        public boolean isIndeterminate()
        返回 indeterminate属性的值。
        结果
        indeterminate属性的值
        从以下版本开始:
        1.4
        另请参见:
        setIndeterminate(boolean)
      • paramString

        protected String paramString()
        返回此JProgressBar的字符串表示JProgressBar 此方法仅用于调试目的。 返回字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
        重写:
        paramString在类 JComponent
        结果
        JProgressBar的字符串表示 JProgressBar
      • getAccessibleContext

        @BeanProperty(bound=false,
                      expert=true,
                      description="The AccessibleContext associated with this ProgressBar.")
        public AccessibleContext getAccessibleContext()
        获取AccessibleContext与此JProgressBar相关联。 对于进度条,该AccessibleContext需要一个形式AccessibleJProgressBar 如有必要,将创建一个新的AccessibleJProgressBar实例。
        Specified by:
        getAccessibleContext在接口 Accessible
        重写:
        getAccessibleContextComponent
        结果
        an AccessibleJProgressBar that serves as the AccessibleContext of this JProgressBar