什麼觸發了變化?如果文本鏈接到某個對象的值you could use binding以在對象值發生更改時自動更新GUI。
或者,您可以嘗試手動執行此操作。例如(這很簡單 - 當您運行runnables時可能需要清除列表以避免運行兩次 - 在這種情況下,您需要處理併發問題等):
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
final List<Runnable> list = new CopyOnWriteArrayList<Runnable>(); //your updates
Runnable updateGui = new Runnable() {
@Override
public void run() {
Platform.runLater(new Runnable() {
@Override
public void run() {
for (Runnable r : list) {
r.run();
}
}
});
}
};
scheduler.scheduleAtFixedRate(updateGui, 0, 1, TimeUnit.SECONDS);
list.add(new Runnable() {
@Override
public void run() {
priceLabel.setText(price);
}
});