У меня есть основной класс
public class Main {
public static void main(String[] args) {
Application.launch(View.class);
View view = new View();
Platform.runLater(() -> view.changeTitle());
}
}
и класс просмотра JavaFX
public class View extends Application {
Stage primaryStage;
public View() {
}
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, 300, 275));
this.primaryStage = primaryStage;
primaryStage.show();
}
public void changeTitle() {
primaryStage.setTitle("YEA!");
}
}
Я хочу, чтобы основной класс что-то делал в потоке JavaFX, но мой код не работает. В документации сказано, что я могу вызывать Platform.runLater() из любого потока, который захочу. Если я вызываю Platform.runLater() из потока JavaFX (например, в start()), все в порядке.