如何使用Progress Bars
(1)使用确定模式进度条
(2)使用不确定模式进度条
(3)使用进度监视器
(4)决定使用进度条还是进度监视器
(5)ProgressMonitorInputStream输入流进度监视器的使用
有时候程序中的任务需要一段时间才能完成。一个好的程序应该向用户提供了一些指示信息:任务正在运行、任务需要多长时间、任务已经完成多少。这种指示工作可以使用进度的估算来描述(进度条),本质上是一种动态地图片。
另一种方法是使用等待光标(wait cursor),使用Cursor类和setCursor方法。例如,下面代码使得wait cursor显示在container上(这个container可以使任何未指定cursor的组件)
container.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR))
你可以像下面这样使用进度条,告知用户任务已经完成了多少
有时候,你不能立刻确定一个大任务所需的时间,或者仍无会阻塞在某一个状态很长时间。你可以不通过度量进度,而是把progress bar放入不确定模式(indeterminate mode)。不确定模式的进度条会动态指示任务正在完成。随着进度条可以显示更多有意义的信息,你应该把他转变为默认的确定模式。在Java样式中,不确定模式的进度条是这样的:
(深色块滚动)
Swing提供了三个类帮助你使用progress bars:
JProgressBar
一个可视化的组件,图形化显示已经完成总任务的多少。参考“(1)使用确定模式进度条” 使用典型的进度条。参考“(2)使用不确定模式进度条”在任务大小确定前滚动进度条
ProgressMonitor
一个非可视化组件。该类的实例检测任务进度,并且在必要的时候弹出对话框,参考“(3)使用进度监视器”
ProgressMonitorInputStream
一个关联进度监视器的输入流,监视器从该输入流中读取数据。你可以像其他基本I/O输入流一样使用它。你可以想”(3)使用进度监视器“中描述那样,通过调用getProgressMonitor和配置它获得该流的进度监视器。
接着介绍“(4)决定使用进度条还是进度监视器”
(1)使用确定模式进度条
使用进度条度量本线程任务进度: