-
- 所有已知实现类:
-
ScheduledService
,Service
,Task
public interface Worker<V>
工作者是在一个或多个后台线程中执行某些工作的对象,其状态是可观察的并且可用于JavaFX应用程序,并且可从主JavaFX应用程序线程中使用。 该接口主要由
Task
和Service
实现 ,在两个类之间提供通用API,这使得库和框架更容易地为开发用户界面时工作良好的工作人员提供便利。根据实施情况,工人可能会也可能不会重复使用。 A
Task
,例如,在Service
是不可重用的。工人有一个明确的生命周期。 每个工人都从
Worker.State.READY
开始。 当工作人员被安排工作时(例如,当一个服务的Service.start()
方法被调用时),它被转换为Worker.State.SCHEDULED
。 即使没有技术安排但是立即启动的工人(如FutureTask.run()
)也将通过Worker.State.SCHEDULED
转到Worker.State.RUNNING
状态。当工作人员正在进行工作时,国家将转为
Worker.State.RUNNING
。 如果工作人员正常完成,则将以Worker.State.SUCCEEDED
状态结束,并将Worker的结果设置为value
属性。 然而,如果在执行Worker时出现异常,那么状态将被设置为Worker.State.FAILED
,而exception
属性将被设置为发生的异常。在工人结束之前的任何时间(即,如果状态尚不是
Worker.State.SUCCEEDED
或Worker.State.FAILED
),开发人员可能会调用cancel()
方法。 如果被调用,工作者将停止执行(如果可能,包括使用Thread.interrupt),状态更改为Worker.State.CANCELLED
。对于工人的唯一有效开始状态是
Worker.State.READY
,以及有效的结束状态是Worker.State.CANCELLED
,Worker.State.SUCCEEDED
,并Worker.State.FAILED
。 当状态为Worker.State.SCHEDULED
或Worker.State.RUNNING
时,running
属性设置为true。工人的进程可以通过三种不同的特性,被监测
totalWork
,workDone
,并progress
。 这些属性由Worker接口的实际实现设置,但是可以被任何人观察到。workDone
是-1(意思是不确定进度)和totalWork
(含)之间的数字。 当workDone == totalWork
progress
将为100%(或1)。totalWork
将是-1和Long.MAX_VALUE之间的数字,包括。 进度将是-1(意思是不确定),或0到1之间的值,包括0到100%。在
Worker.State.READY
或Worker.State.SCHEDULED
状态的工作人员将始终有workDone
和progress
设置为-1。 处于Worker.State.SUCCEEDED
状态的工作人员将始终有workDone == totalWork
和progress == 1
。 在任何其他状态下,这些属性的值可以是其各自有效范围内的任何值。- 从以下版本开始:
- JavaFX 2.0
-
-
Property Summary
Properties Type Property 描述 ReadOnlyObjectProperty<Throwable>
exception
获取表示发生的任何异常的ReadOnlyObjectProperty。ReadOnlyStringProperty
message
获取表示消息的ReadOnlyStringProperty。ReadOnlyDoubleProperty
progress
获取表示进度的ReadOnlyDoubleProperty。ReadOnlyBooleanProperty
running
获取表示Worker正在运行的ReadOnlyBooleanProperty。ReadOnlyObjectProperty<Worker.State>
state
获取表示当前状态的ReadOnlyObjectProperty。ReadOnlyStringProperty
title
获取表示标题的ReadOnlyStringProperty。ReadOnlyDoubleProperty
totalWork
获取ReadOnlyDoubleProperty代表需要完成的最大工作量。ReadOnlyObjectProperty<V>
value
获取表示值的ReadOnlyObjectProperty。ReadOnlyDoubleProperty
workDone
获取表示当前进度的ReadOnlyDoubleProperty。
-
Nested Class Summary
Nested Classes Modifier and Type 接口 描述 static class
Worker.State
工人的状态。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 boolean
cancel()
终止执行这个工人。ReadOnlyObjectProperty<Throwable>
exceptionProperty()
获取表示发生的任何异常的ReadOnlyObjectProperty。Throwable
getException()
表示工人运行时发生的异常(如果有)。String
getMessage()
获取与此Worker的当前状态相关联的消息。double
getProgress()
表示该工作人员目前在完成百分比方面的进度。Worker.State
getState()
指定此Worker的当前状态。String
getTitle()
应该与此Worker关联的可选标题。double
getTotalWork()
表示workDoneProperty()
属性的最大值。V
getValue()
指定此Worker的值或结果。double
getWorkDone()
表示已完成的当前工作量。boolean
isRunning()
如果状态为SCHEDULED或RUNNING,则为真。ReadOnlyStringProperty
messageProperty()
获取表示消息的ReadOnlyStringProperty。ReadOnlyDoubleProperty
progressProperty()
获取表示进度的ReadOnlyDoubleProperty。ReadOnlyBooleanProperty
runningProperty()
获取表示Worker正在运行的ReadOnlyBooleanProperty。ReadOnlyObjectProperty<Worker.State>
stateProperty()
获取表示当前状态的ReadOnlyObjectProperty。ReadOnlyStringProperty
titleProperty()
获取表示标题的ReadOnlyStringProperty。ReadOnlyDoubleProperty
totalWorkProperty()
获取ReadOnlyDoubleProperty代表需要完成的最大工作量。ReadOnlyObjectProperty<V>
valueProperty()
获取表示值的ReadOnlyObjectProperty。ReadOnlyDoubleProperty
workDoneProperty()
获取表示当前进度的ReadOnlyDoubleProperty。
-
-
-
Property Detail
-
state
ReadOnlyObjectProperty<Worker.State> stateProperty
获取表示当前状态的ReadOnlyObjectProperty。- 另请参见:
-
getState()
-
value
ReadOnlyObjectProperty<V> valueProperty
获取表示值的ReadOnlyObjectProperty。- 另请参见:
-
getValue()
-
exception
ReadOnlyObjectProperty<Throwable> exceptionProperty
获取表示发生的任何异常的ReadOnlyObjectProperty。- 另请参见:
-
getException()
-
workDone
ReadOnlyDoubleProperty workDoneProperty
获取表示当前进度的ReadOnlyDoubleProperty。- 另请参见:
-
getWorkDone()
-
totalWork
ReadOnlyDoubleProperty totalWorkProperty
获取ReadOnlyDoubleProperty代表需要完成的最大工作量。 这些“工作单位”对Worker实现有意义,例如需要下载的字节数或要处理的图像数量或某种其他此类度量。- 另请参见:
-
getTotalWork()
-
progress
ReadOnlyDoubleProperty progressProperty
获取表示进度的ReadOnlyDoubleProperty。- 另请参见:
-
getProgress()
-
running
ReadOnlyBooleanProperty runningProperty
获取表示Worker正在运行的ReadOnlyBooleanProperty。- 另请参见:
-
isRunning()
-
message
ReadOnlyStringProperty messageProperty
获取表示消息的ReadOnlyStringProperty。- 另请参见:
-
getMessage()
-
title
ReadOnlyStringProperty titleProperty
获取表示标题的ReadOnlyStringProperty。- 另请参见:
-
getTitle()
-
-
方法详细信息
-
getState
Worker.State getState()
指定此Worker的当前状态。 初始值为State.READY。 任务可能会重新启动,在这种情况下,它将从其中一个终止状态(SUCCEEDED,CANCELED或FAILED)进入READY状态,然后立即进入SCHEDULED并运行。 这些状态转换可能会一个接一个地发生,但将始终以规定的顺序发生。- 结果
- 这个工人的现状
-
stateProperty
ReadOnlyObjectProperty<Worker.State> stateProperty()
获取表示当前状态的ReadOnlyObjectProperty。- 另请参见:
-
getState()
-
getValue
V getValue()
指定此Worker的值或结果。 这是在进入SUCCEEDED状态后设置的,并且如果Worker被重新初始化(即,如果Worker是可重用的Worker并被重置或重新启动),则清除(设置为null)。- 结果
- 这个工人的当前值
-
valueProperty
ReadOnlyObjectProperty<V> valueProperty()
获取表示值的ReadOnlyObjectProperty。- 另请参见:
-
getValue()
-
getException
Throwable getException()
表示工人运行时发生的异常(如果有)。 如果此属性值为null
,即使状态为FAILED,也没有已知的异常。 如果此属性不是null
,它很可能包含描述失败原因的异常。- 结果
- 例外,如果发生
-
exceptionProperty
ReadOnlyObjectProperty<Throwable> exceptionProperty()
获取表示发生的任何异常的ReadOnlyObjectProperty。- 另请参见:
-
getException()
-
getWorkDone
double getWorkDone()
表示已完成的当前工作量。 零或正值表示要完成的进度。 此变量值可能或可能不会从其默认值更改,具体取决于具体的Worker实现。 值-1表示当前完成的工作量无法确定(即:不确定)。 该属性的值始终小于或等于totalWork。- 结果
- 完成的工作量
- 另请参见:
-
totalWorkProperty()
,progressProperty()
-
workDoneProperty
ReadOnlyDoubleProperty workDoneProperty()
获取表示当前进度的ReadOnlyDoubleProperty。- 另请参见:
-
getWorkDone()
-
getTotalWork
double getTotalWork()
表示workDoneProperty()
属性的最大值。 totalWork将为-1(表示要做的工作量是不确定的),或者它将是小于或等于Double.MAX_VALUE的非零值。- 结果
- 要完成的工作
- 另请参见:
-
workDoneProperty()
,progressProperty()
-
totalWorkProperty
ReadOnlyDoubleProperty totalWorkProperty()
获取ReadOnlyDoubleProperty代表需要完成的最大工作量。 这些“工作单位”对Worker实现有意义,例如需要下载的字节数或要处理的图像数量或某种其他此类度量。- 另请参见:
-
getTotalWork()
-
getProgress
double getProgress()
表示该工作人员目前在完成百分比方面的进度。 0到1之间的值表示要完成的进度。 值-1表示当前进度无法确定(即不确定)。 此属性的默认值为-1,取决于具体的Worker实现。- 结果
- 当前进展
- 另请参见:
-
workDoneProperty()
,totalWorkProperty()
-
progressProperty
ReadOnlyDoubleProperty progressProperty()
获取表示进度的ReadOnlyDoubleProperty。- 另请参见:
-
getProgress()
-
isRunning
boolean isRunning()
如果状态为SCHEDULED或RUNNING,则为真。 当将Worker绑定到一个ProgressIndicator
时 ,通常会将ProgressIndicator的可见性绑定到Worker的running属性,并将ProgressIndicator的进度绑定到Worker的progress属性。- 结果
- 如果此Worker正在运行,则为true
-
runningProperty
ReadOnlyBooleanProperty runningProperty()
获取表示Worker正在运行的ReadOnlyBooleanProperty。- 另请参见:
-
isRunning()
-
getMessage
String getMessage()
获取与此Worker的当前状态相关联的消息。 这可能是例如“处理3的图像”之类的东西。- 结果
- 当前的消息
-
messageProperty
ReadOnlyStringProperty messageProperty()
获取表示消息的ReadOnlyStringProperty。- 另请参见:
-
getMessage()
-
getTitle
String getTitle()
应该与此Worker关联的可选标题。 这可能是“修改图像”。- 结果
- 当前标题
-
titleProperty
ReadOnlyStringProperty titleProperty()
获取表示标题的ReadOnlyStringProperty。- 另请参见:
-
getTitle()
-
cancel
boolean cancel()
终止执行这个工人。 调用此方法将从执行队列中删除此Worker或停止执行。- 结果
- returns true if the cancel was successful
-
-