绑定属性和状态方法

SwingWorker支持bound properties,这对于与其他线程通信非常有用。预定义了两个绑定属性:progressstate。与所有绑定属性一样,progressstate可用于触发事件分发线程上的事件处理任务。

通过实现属性更改侦听器,程序可以跟踪对progressstate和其他绑定属性的更改。有关更多信息,请参阅编写事件监听器中的如何编写属性更改侦听器

进度绑定变量

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

Futureinterface的一部分这两种方法也可以报告后台任务的状态。如我们在取消后台任务中看到的,如果任务已取消,则isCancelled返回true。另外,如果任务正常完成或被取消,则isDone返回true