绑定属性和状态方法
SwingWorker
支持bound properties,这对于与其他线程通信非常有用。预定义了两个绑定属性:progress
和state
。与所有绑定属性一样,progress
和state
可用于触发事件分发线程上的事件处理任务。
通过实现属性更改侦听器,程序可以跟踪对progress
,state
和其他绑定属性的更改。有关更多信息,请参阅编写事件监听器中的如何编写属性更改侦听器。
进度绑定变量
progress
绑定变量是int
值,范围从 0 到 100.它具有 预定义的设置方法(受保护的SwingWorker.setProgress)和 预定义的获取方法(公共SwingWorker.getProgress)。
ProgressBarDemo示例使用progress
从后台任务更新ProgressBar
控件。有关此示例的详细讨论,请参考使用 Swing 组件中的如何使用进度条。
状态绑定变量
state
绑定变量指示SwingWorker
对象在其生命周期中的位置。绑定变量包含类型为SwingWorker.StateValue
的枚举值。可能的值为:
-
PENDING
- 从构造对象到调用
doInBackground
之前的状态。
- 从构造对象到调用
-
STARTED
- 从
doInBackground
之前不久到done
之前不久之间的状态。
- 从
-
DONE
- 剩余对象存在的状态。
state
绑定变量的当前值由SwingWorker.getState返回。
Status Methods
Future
interface的一部分这两种方法也可以报告后台任务的状态。如我们在取消后台任务中看到的,如果任务已取消,则isCancelled
返回true
。另外,如果任务正常完成或被取消,则isDone
返回true
。