如何在线程的JavaFX阶段更改场景?

时间:2019-01-11 14:40:42

标签: java multithreading javafx

在我的程序中,我想在其他类的子线程中运行Class.Stage.setScene(scene)。示例:

public class GUI extends Application{   
Stage window;

Scene mainScene;
Scene secondScene;

//mainscene variables/elements declared here
//secondscene variables/elements declared here

public void start(Stage primaryStage) throws Exception{
    window = primaryStage;
    window.setTitle("title");

    //mainScene variables/elements/layout defined here
    //secondScene variables/elements/layout defined here

    mainScene = new Scene(border1, 640, 480);   
    secondScene = new Scene(border2, 640, 480);

    window.setScene(mainScene);
    window.show();  
}

}

我想做以下事情:

Platform.runLater(GUI.window.setScene(GUI.window.secondScene));

但这需要类实现Runnable并覆盖run(),而我不知道如何在覆盖start()的类中做到这一点。

我也尝试过:

Task<Void> task = new Task<Void>() {
protected Void call() throws Exception { 
         GUI.window.setScene(GUI.guestLoginScene);                           
    }
};
task.run();
Thread thread = new Thread(task);
thread.start();

它没有错误,但是什么也没发生。

0 个答案:

没有答案