Module java.desktop
Package javax.swing

Class JProgressBar

所有已实现的接口:
ImageObserver, MenuContainer, Serializable, Accessible, SwingConstants

@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();
...//当开始一个(最初)未知长度的任务时:
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
参见: