JavaFX: cómo pasar el valor del subproceso en segundo plano al subproceso de la interfaz de usuario JavaFX con la tarea
Tengo una tarea de trabajo que consume continuamente el servicio web y devuelve el valor entero.
Mi aplicación consta de diferentes (30) cuadros de texto con el botón de opción asociado. Cuando hago clic en el botón de opción, quiero mostrar el valor de la tarea en segundo plano en el campo Texto junto al botón de opción.
¿Cómo puedo pasar el valor del subproceso de fondo al subproceso de la interfaz de usuario JAVAFX en esta situación particular?
Soy nuevo en JavaFX y se usa de la siguiente manera. ¿Es este el enfoque correcto?
@FXML
private TabPane mainTabPane;
Tarea creada en el controlador de la ventana principal y también ejecutándose en el controlador de la ventana principal
myScheduledService.setPeriod(Duration.seconds(10));
myScheduledService.start();
Y tarea creada:
private class MyScheduledService extends ScheduledService {
@Override
protected Task createTask() {
return new Task() {
@Override
protected String call() throws IOException, ParseException {
// calling web service here
Integer data = callToMyWebService();
Tab tab = mainTabPane.getTabs().get(mainTabPane.getTabs().size() - 1);
BorderPane pane = (BorderPane) tab.getContent();
HBox hBox = ((HBox) pane.getChildren().get(0));
Text operationValueDisplayText = (Text) hbox.getChildren().get(2);
// displaying data in text box
operationValueDisplayText.setText(String.valueOf(data));
}
}; }