2013-01-13 15 views
5

Un'attività imposta il suo avanzamento chiamando updateProgress() e avendo un widget GUI come un ProgressIndicator con la sua progressProperty associata alla progressProperty dell'attività. Tuttavia, l'articolo qui cita anche chiamando updateMessage nell'Esempio 5 ma l'esempio è incompleto.Attività JavaFX: dove scrive updateMessage()?

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

non è chiaro a me dove/come viene visualizzato il messaggio poiché non v'è alcuna proprietà messaggio nel ProgressIndicator né ProgressBar di legarsi a. Vedo che Task eredita la proprietà del messaggio dalla classe Worker. http://docs.oracle.com/javafx/2/api/javafx/concurrent/Task.html

Ma in che modo la GUI ottiene una sospensione e esegue l'associazione poiché Task è visibile solo al servizio?

Non sono riuscito a trovare esempi funzionanti di questo. Nell'esempio Ensemble, l'esempio Service ha un ProgressIndicator ma, di nuovo, nessun messaggio viene aggiornato. http://download.oracle.com/otndocs/products/javafx/2.2/samples/Ensemble/index.html

risposta

9

Sono in grado di utilizzare myController.service.messageProperty() per accedere al messaggio Proprietà dell'attività.

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

Si noti che questo esegue una sovrascrittura di, piuttosto che un'aggiunta a, l'area di testo.

Per eseguire un'app, è necessario associare un ChangeListener alla proprietà del messaggio.