public interface Worker<V>
Workerは、1つ以上のバックグラウンド・スレッドで処理を実行するオブジェクトであり、その状態はJavaFXアプリケーションで監視可能および使用可能で、メインのJavaFXアプリケーション・スレッドから使用できます。 このインタフェースは、主にTaskとServiceの両方によって実装され、ユーザー・インタフェースの開発時に、適切に機能するワーカーをライブラリおよびフレームワークが提供することを容易にする、両方のクラス間の共通APIを提供します。
Workerは、実装に応じて、再利用可能な場合と再利用可能でない場合があります。 たとえば、Taskは再利用可能ではありませんが、Serviceは再利用可能です。
Workerには、明確に定義されたライフ・サイクルがあります。 すべてのWorkerは、Worker.State.READY状態で開始されます。 Workerの処理がスケジュールされると(たとえば、ServiceのService.start()メソッドが呼び出されると)、Worker.State.SCHEDULEDに遷移します。 技術的にはスケジュールされず、即時に起動されるWorkerも(FutureTask.run()の使用など)、Worker.State.SCHEDULEDを経由してWorker.State.RUNNING状態に遷移します。
Workerがその処理を実際に実行しているとき、状態はWorker.State.RUNNINGに遷移しています。 Workerが正常に完了した場合、Worker.State.SUCCEEDED状態になり、Workerの結果はvalueプロパティとして設定されます。 ただし、Workerの実行中に例外が発生した場合、状態はWorker.State.FAILEDに設定され、exceptionプロパティは発生した例外に設定されます。
Workerの終了前の任意の時点で(つまり、状態がまだWorker.State.SUCCEEDEDまたはWorker.State.FAILEDでない場合)、開発者はcancel()メソッドを呼び出すことができます。 呼び出すと、Workerは実行を停止し(可能な場合、Thread.interruptの使用を含む)、状態はWorker.State.CANCELLEDに変わります。
Workerの有効な開始状態はWorker.State.READYのみであり、有効な終了状態はWorker.State.CANCELLED、Worker.State.SUCCEEDEDおよびWorker.State.FAILEDです。 状態がWorker.State.SCHEDULEDまたはWorker.State.RUNNINGの場合、runningプロパティがtrueに設定されます。
Workerの進捗は、totalWork、workDoneおよびprogressという3つの異なるプロパティでモニターできます。 これらのプロパティはWorkerインタフェースの実際の実装によって設定されますが、誰でも監視できます。 workDoneは、-1 (不確定な進捗を意味する)からtotalWorkまでの数値(両端の数値を含む)です。 workDone == totalWorkの場合、progressは100% (つまり1)になります。totalWorkは、-1からLong.MAX_VALUEまでの数値(両端の数値を含む)になります。 progressは、-1 (不確定を意味する)か、または0から1までの値(両端の値を含む)になり、これは0%から100%を表します。
Worker.State.READYまたはWorker.State.SCHEDULED状態のWorkerでは、workDoneおよびprogressは常に-1に設定されます。 Worker.State.SUCCEEDED状態のWorkerは、常にworkDone == totalWorkおよびprogress == 1になります。 その他の状態では、これらのプロパティの値はそれぞれの有効範囲内の任意の値です。
| 型 | プロパティと説明 |
|---|---|
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を取得します。
|
| 修飾子と型 | インタフェースと説明 |
|---|---|
static class |
Worker.State
Workerの状態。
|
| 修飾子と型 | メソッドと説明 |
|---|---|
boolean |
cancel()
このWorkerの実行を終了します。
|
ReadOnlyObjectProperty<Throwable> |
exceptionProperty()
発生した例外を表すReadOnlyObjectPropertyを取得します。
|
Throwable |
getException()
Workerの実行中に発生した例外を示します(存在する場合)。
|
String |
getMessage()
このWorkerの現在の状態に関連付けられたメッセージを取得します。
|
double |
getProgress()
このWorkerの現在の進捗を完了パーセントで示します。
|
Worker.State |
getState()
このWorkerの現在の状態を指定します。
|
String |
getTitle()
このWorkerに関連付ける必要があるオプションのタイトル。
|
double |
getTotalWork()
workDoneProperty()プロパティの最大値を示します。 |
V |
getValue()
このWorkerの値(つまり、結果)を指定します。
|
double |
getWorkDone()
現在の完了済の処理量を示します。
|
boolean |
isRunning()
状態がSCHEDULEDまたはRUNNINGの場合はtrue。
|
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を取得します。
|
ReadOnlyObjectProperty<Worker.State> stateProperty
getState()ReadOnlyObjectProperty<V> valueProperty
getValue()ReadOnlyObjectProperty<Throwable> exceptionProperty
getException()ReadOnlyDoubleProperty workDoneProperty
getWorkDone()ReadOnlyDoubleProperty totalWorkProperty
getTotalWork()ReadOnlyDoubleProperty progressProperty
getProgress()ReadOnlyBooleanProperty runningProperty
isRunning()ReadOnlyStringProperty messageProperty
getMessage()ReadOnlyStringProperty titleProperty
getTitle()Worker.State getState()
ReadOnlyObjectProperty<Worker.State> stateProperty()
getState()V getValue()
ReadOnlyObjectProperty<V> valueProperty()
getValue()Throwable getException()
nullの場合、ステータスがFAILEDであっても、既知の例外はありません。 このプロパティがnullでない場合、失敗の原因を示す例外が含まれている可能性が高くなります。 ReadOnlyObjectProperty<Throwable> exceptionProperty()
getException()double getWorkDone()
totalWorkProperty(), progressProperty()ReadOnlyDoubleProperty workDoneProperty()
getWorkDone()double getTotalWork()
workDoneProperty()プロパティの最大値を示します。 totalWorkは、-1 (実行する処理量が不確定であることを示す)になるか、またはDouble.MAX_VALUE以下の0以外の値になります。 workDoneProperty(), progressProperty()ReadOnlyDoubleProperty totalWorkProperty()
getTotalWork()double getProgress()
workDoneProperty(), totalWorkProperty()ReadOnlyDoubleProperty progressProperty()
getProgress()boolean isRunning()
ProgressIndicatorにバインドする場合、通常は、ProgressIndicatorのvisibilityをWorkerのrunningプロパティにバインドし、ProgressIndicatorのprogressをWorkerのprogressプロパティにバインドします。 ReadOnlyBooleanProperty runningProperty()
isRunning()String getMessage()
ReadOnlyStringProperty messageProperty()
getMessage()String getTitle()
ReadOnlyStringProperty titleProperty()
getTitle()boolean cancel()
Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.