读书人

(二)怎么使用Progress Bar

发布时间: 2012-12-26 14:39:29 作者: rapoo

(二)如何使用Progress Bar
英文文档:http://download.oracle.com/javase/tutorial/uiswing/components/progress.html如何使用Progress Bars

(1)使用确定模式进度条

(2)使用不确定模式进度条

(3)使用进度监视器

(4)决定使用进度条还是进度监视器

(5)ProgressMonitorInputStream输入流进度监视器的使用

?

??? 有时候程序中的任务需要一段时间才能完成。一个好的程序应该向用户提供了一些指示信息:任务正在运行、任务需要多长时间、任务已经完成多少。这种指示工作可以使用进度的估算来描述(进度条),本质上是一种动态地图片。

??? 另一种方法是使用等待光标(wait cursor),使用Cursor类和setCursor方法。例如,下面代码使得wait cursor显示在container上(这个container可以使任何未指定cursor的组件)

?


???? 有时候,你不能立刻确定一个大任务所需的时间,或者仍无会阻塞在某一个状态很长时间。你可以不通过度量进度,而是把progress bar放入不确定模式(indeterminate mode)。不确定模式的进度条会动态指示任务正在完成。随着进度条可以显示更多有意义的信息,你应该把他转变为默认的确定模式。在Java样式中,不确定模式的进度条是这样的:


(二)怎么使用Progress Bar

(深色块滚动)

?

Swing提供了三个类帮助你使用progress bars:

?

?JProgressBar

??? 一个可视化的组件,图形化显示已经完成总任务的多少。参考“(1)使用确定模式进度条使用典型的进度条。参考“(2)使用不确定模式进度条”在任务大小确定前滚动进度条

ProgressMonitor

??? 一个非可视化组件。该类的实例检测任务进度,并且在必要的时候弹出对话框,参考“(3)使用进度监视器”

ProgressMonitorInputStream

??? 一个关联进度监视器的输入流,监视器从该输入流中读取数据。你可以像其他基本I/O输入流一样使用它。你可以想”(3)使用进度监视器“中描述那样,通过调用getProgressMonitor和配置它获得该流的进度监视器。

?

??? 接着介绍“(4)决定使用进度条还是进度监视器”

(1)使用确定模式进度条

??? 使用进度条度量本线程任务进度:



(二)怎么使用Progress Bar
?
???? 下面是代码来自ProgressBarDemo.java创建和设置进度条:

(二)怎么使用Progress Bar

?

??? 在ProgressBarDemo2.java 中,模式设置为不确定,知道真正的进度开始位置:


???? 一个进度监视器不能重复使用,因此每一次新任务开始时,一定有一个新的进度监视器被创建。demo中,每点击开始按钮,程序都会创建一个进度监视器。

??? 这句代码创建了进度监视器


???? 由于需要估算该输入流的可读长度,所以对话框弹出稍慢,某些设置可以参考进度监视器的。

读书人网 >编程

热点推荐