モジュール javafx.graphics
パッケージ javafx.concurrent

インタフェースWorker<V>

  • 既知のすべての実装クラス:
    ScheduledService, Service, Task

    public interface Worker<V>

    ワーカーは、1つ以上のバックグラウンド・スレッドで何らかの作業を実行し、その状態がJavaFXアプリケーションで観測可能で利用可能であり、メインのJavaFXアプリケーション・スレッドから使用可能なオブジェクトです。 このインタフェースは、主にTaskServiceの両方によって実装され、ユーザー・インタフェースの開発時に、適切に機能するワーカーをライブラリおよびフレームワークが提供することを容易にする、両方のクラス間の共通APIを提供します。

    Workerは、実装に応じて、再利用可能な場合と再利用可能でない場合があります。 たとえば、Taskは再利用可能ではありませんが、Serviceは再利用可能です。

    Workerには、明確に定義されたライフ・サイクルがあります。 すべてのWorkerは、Worker.State.READY状態で開始されます。 Workerの処理がスケジュールされると(たとえば、ServiceのService.start()メソッドが呼び出されると)、Worker.State.SCHEDULEDに遷移します。 技術的にスケジュールされていないが、すぐに開始された労働者でさえ、(RunnableFuture.run()などで)はWorker.State.RUNNING状態に移行する途中でWorker.State.SCHEDULEDを介して移行します。

    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.CANCELLEDWorker.State.SUCCEEDEDおよびWorker.State.FAILEDです。 状態がWorker.State.SCHEDULEDまたはWorker.State.RUNNINGの場合、runningプロパティがtrueに設定されます。

    Workerの進捗は、totalWorkworkDoneおよび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になります。 その他の状態では、これらのプロパティの値はそれぞれの有効範囲内の任意の値です。

    導入されたバージョン:
    JavaFX 2.0
    • メソッドの詳細

      • getState

        Worker.State getState()
        このWorkerの現在の状態を指定します。 初期値はState.READYです。 Taskは再起動される場合があり、その場合、これらの終了状態(SUCCEEDED、CANCELLEDまたはFAILED)のいずれかからREADYに戻り、即時にSCHEDULEDおよびRUNNINGに進みます。 これらの状態遷移は即時に次々と発生する場合がありますが、規定の順序で常に発生します。
        戻り値:
        このWorkerの現在の状態
      • getValue

        V getValue()
        このWorkerの値(つまり、結果)を指定します。 これは、SUCCEEDED状態になるときに設定され、Workerが再初期化された場合(つまり、Workerが再利用可能なWorkerであり、リセットまたは再起動された場合)は、クリアされます(nullに設定されます)。
        戻り値:
        このWorkerの現在の値
      • getException

        Throwable getException()
        Workerの実行中に発生した例外を示します(存在する場合)。 このプロパティ値がnullの場合、ステータスがFAILEDであっても、既知の例外はありません。 このプロパティがnullでない場合、失敗の原因を示す例外が含まれている可能性が高くなります。
        戻り値:
        例外(発生した場合)
      • getWorkDone

        double getWorkDone()
        現在の完了済の処理量を示します。 0または正の値は、完了に向けた進捗を示します。 この変数値は、具体的なWorker実装に応じて、デフォルト値から変わる場合と変わらない場合があります。 値-1は、現在の実行された処理量を判別できないことを意味します(つまり、不確定です)。 このプロパティの値は、常にtotalWork以下です。
        戻り値:
        実行された処理量
        関連項目:
        totalWorkProperty(), progressProperty()
      • getTotalWork

        double getTotalWork()
        workDoneProperty()プロパティの最大値を示します。 totalWorkは、-1 (実行する処理量が不確定であることを示す)になるか、またはDouble.MAX_VALUE以下の0以外の値になります。
        戻り値:
        実行される処理合計
        関連項目:
        workDoneProperty(), progressProperty()
      • totalWorkProperty

        ReadOnlyDoubleProperty totalWorkProperty()
        実行する必要がある最大処理量を表すReadOnlyDoublePropertyを取得します。 これらの処理単位は、ダウンロードする必要があるバイト数や処理するイメージ数、その他のこのようなメトリックなど、Worker実装にとって意味を持ちます。
        関連項目:
        getTotalWork()
      • getProgress

        double getProgress()
        このWorkerの現在の進捗を完了パーセントで示します。 0から1までの値は、完了に向けた進捗を示します。 値-1は、現在の進捗を判別できないことを意味します(つまり、不確定です)。 このプロパティは、具体的なWorker実装に応じて、デフォルト値-1から変わる場合と変わらない場合があります。
        戻り値:
        現在の進捗
        関連項目:
        workDoneProperty(), totalWorkProperty()
      • isRunning

        boolean isRunning()
        状態がSCHEDULEDまたはRUNNINGの場合はtrue。 WorkerをProgressIndicatorにバインドする場合、通常は、ProgressIndicatorのvisibilityをWorkerのrunningプロパティにバインドし、ProgressIndicatorのprogressをWorkerのprogressプロパティにバインドします。
        戻り値:
        このWorkerが実行中の場合はtrue
      • runningProperty

        ReadOnlyBooleanProperty runningProperty()
        Workerを実行しているかどうかを表すReadOnlyBooleanPropertyを取得します。
        関連項目:
        isRunning()
      • getMessage

        String getMessage()
        このWorkerの現在の状態に関連付けられたメッセージを取得します。 これは、たとえば、Processing image 1 of 3などの場合があります。
        戻り値:
        現在のメッセージ
      • getTitle

        String getTitle()
        このWorkerに関連付ける必要があるオプションのタイトル。 これは、Modifying Imagesなどの場合があります。
        戻り値:
        現在のタイトル
      • cancel

        boolean cancel()
        このWorkerの実行を終了します。 このメソッドを呼び出すと、このWorkerが実行キューから削除されるか、実行が停止されます。
        戻り値:
        取消しが成功だった場合、trueを返します。