Ich interessiere mich für eine interessante Aufgabe. Ich habe UI in JavaFx mit einem anderen Thread, der die Benutzeroberfläche aktualisiert. Ich habe Updates von Platform.runLater gestartet. Code:JavaFX Update UI von einem Thread Java 8
private void startUpdateDaemon() {
updateUserStatus();
updateTable();
}
private void startUpdateDaemonTask() {
Task task = new Task<Void>() {
@Override
protected Void call() throws Exception {
while (true) {
Platform.runLater(() -> {
startUpdateDaemon();
});
Thread.sleep(1000);
}
}
};
Thread th = new Thread(task);
th.setDaemon(true);
th.start();
}
@Override
public void initialize(URL location, ResourceBundle resources) {
startUpdateDaemonTask();
}
Auch habe ich in einer anderen Klasse, wo ich UI-Updates:
private void startUpdateDaemonTask() {
Task task = new Task<Void>() {
@Override
protected Void call() throws Exception {
while (true) {
Platform.runLater(new Runnable() {
@Override
public void run() {
updateGameStatus();
}
});
Thread.sleep(1000);
}
}
};
Thread th = new Thread(task);
th.setDaemon(true);
th.start();
}
So, endlich habe ich zwei Plätze mit Call "Platform.runLater" und verschiedene Methoden im Inneren. Meine Frage ist Kann ich nur "eine" Methode mit einmaligem Aufruf "Platform.runLater" erstellen und an diese Methode verschiedene Methoden senden die aufgerufen werden ?? Kann ich sein, kann ich Methode mit den Endverbrauchern schreiben und ihm die Methoden 'startUpdateDaemon()' und 'updateGameStatus()' schicken? Vielen Dank.
Vielen Dank! Gute Möglichkeit. Das ist was ich brauche. – Leo