Синхронизация потока javafx, пока истина
Я новичок в JavaFX
и есть некоторые проблемы с потоками. Мое приложение должно сделать что-то вроде этого (жесткий псевдокод):
start(){
startLoop(); //new thread
displayThingsSavedToSharedVariable();
}
loop(){
while (true){
doThings();
saveThingsToSharedVariable();
}
}
Я хочу отобразить вывод из loop()
в JavaFX
GUI обновлен, по одному на строку в терминале, но я не знаю, как синхронизировать поток с loop()
с JavaFX
нить. Общая переменная - это всего лишь - не работающий - пример того, чего я хочу достичь, главный вопрос - как динамически печатать текст в JavaFX
GUI из бесконечного цикла в другом потоке.
1 ответ
Решение
Правильный способ обновить графический интерфейс javafx - использовать Platform.runLater.
String mytext = deriveText();
Platform.runLater(()->{
label.setText(mytext);
});
Вы также можете рассмотреть возможность использования интерфейса Observable.