Thread addLabel = new Thread(new Runnable() {
@Override
public void run() {
while(start) {
vBox.getChildren().addAll(new Label("new label"));
}
}
});
Platform.runLater((() -> someLabel.setText("Hello"));
public class Example extends Application {
...
btn.setOnAction(act -> {
Service<Void> service = new Service<Void>() {
@Override
protected Task<Void> createTask() {
return new Task<Void>() {
@Override
protected Void call() throws Exception {
// Долгий код
return null;
}
};
}
};
service.start();
});
}
boolean update=false;
AnimationTimer animationTimer=new AnimationTimer() {
@Override
public void handle(long now) {
// от здесь уже процесс от JavaFx, можешь спокойно обновлять UI
if(update){
update=false;
// обычно у меня так выглядет
// TODO обновление UI
}
}
};
animationTimer.start();
Platform.runLater(new Runnable() {
@Override
public void run() {
// здесь уже поток от JavaFx
}
});