JavaFX: изменить текст label с потока

знаю что очень много похожих тем и, побродив по просторам интернета, наткнулся на возможные решения моей проблемы с помощью Task, Service и метода Platform.runLater(). Увы, не могу подстроить эти варианты под свой код в котором есть Контроллер пользовательского интерфейса и Мой класс - поток. Итак вопрос:

Что посоветуете да изменения метки curMoney из потока в классе Tactic?

public class Tactic  implements Runnable{

@Override
public void run() {
    while(true){
        money += income;
        System.out.println((int)money); // Вместо этого ожидается label.setText(money);
        try {
            Thread.sleep(speed);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
}

Контроллер

import javafx.fxml.FXML;
import javafx.scene.control.Label;

public class Controller {

@FXML
private Label curMoney;

@FXML
private Label curIncome;

@FXML
void initialize() {
    Thread thread = new Thread(new Tactic());
    thread.start();
}
}

Ответы (1 шт):

Автор решения: Olmicron
public class Tactic  implements Runnable{

    @Override
    public void run() {
        while(true){
            money += income;

            Platform.runLater(() -> {
                // Тут выводим результат в интерфейс
                label.setText(money);
            });

            try {
                Thread.sleep(speed);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

Только позаботьтесь о синхронизации переменной money

→ Ссылка