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.