6

タスクは、updateProgress() を呼び出して進行状況を設定し、ProgressIndicator のような GUI ウィジェットにその progressProperty をタスクの progressProperty にバインドさせます。ただし、こちらの記事では、例 5 で updateMessage を呼び出すことについても言及していますが、例は不完全です。

http://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm

ProgressIndicator にも ProgressBar にもバインドするメッセージ プロパティがないため、メッセージがどこにどのように表示されるかは明確ではありません。Task が Worker クラスから message プロパティを継承していることがわかります。http://docs.oracle.com/javafx/2/api/javafx/concurrent/Task.html

しかし、Task は Service にのみ表示されるため、GUI はどのようにしてそれを取得し、バインディングを実行するのでしょうか?

これの実例は見つかりませんでした。Ensemble サンプルでは、​​Service サンプルに ProgressIndicator がありますが、やはりメッセージは更新されません。 http://download.oracle.com/otndocs/products/javafx/2.2/samples/Ensemble/index.html

4

1 に答える 1

10

myController.service.messageProperty() を使用して Task の messageProperty にアクセスできます。

 myTextArea.textProperty().bind(myController.myService.messageProperty());

これは、TextArea への追加ではなく、上書きを行うことに注意してください。

追加を行うには、代わりに ChangeListener をメッセージ プロパティにバインドする必要があります。

于 2013-01-13T05:00:32.333 に答える