1
興味深い1つのタスクに興味がありました。私はUIをJavaFXに持っていて、UIを更新する別のスレッドを持っています。私はPlatform.runLaterから更新を開始しました。コード:JavafxスレッドからUIを更新する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();
}
はまた、私は、私はUIを更新し、別のクラスの場所を持っている:
だから、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();
}
、最終的に私は、コール「Platform.runLater」と内部の異なる方法で2つの場所を持っています。 私の質問は、1つの時間呼び出し "Platform.runLater"で "one"メソッドのみを作成し、このメソッドにコールするさまざまなメソッドを送信できますか?私はコンシューマで仕上げメソッドを記述し、メソッド 'startUpdateDaemon()'と 'updateGameStatus()'をメソッドに送ることができますか? ありがとうございました。
どうもありがとう!良い方法。それだけが必要。 – Leo