Module  java.desktop
软件包  javax.swing

Class JProgressBar

  • All Implemented Interfaces:
    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版本开始,所有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 - HORIZONTAL或者 VERTICAL
        异常
        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方法返回true ,进度字符串isStringPainted true

        参数
        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 s转发到直接添加到进度条的ChangeListener s。
        结果
        实例的自定义 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 s或一个空数组
        从以下版本开始:
        1.4
      • fireStateChanged

        protected void fireStateChanged​()
        发送ChangeEvent ,其来源是这个JProgressBar ,所有ChangeListener s已注册兴趣ChangeEvent s。 每次从模型接收到一个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
        重写:
        paramStringJComponent
        结果
        这个 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