簡體   English   中英

嘗試使用方法調用在javaFX中啟動新的FXML文件

[英]Trying to launch a new FXML file in javaFX using a method call

我正在嘗試使用一種方法調用另一個fxml頁面,但出現以下錯誤。

java.lang.IllegalStateException:不在FX應用程序線程上; com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:236)處的currentThread = AWT-EventQueue-0 com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:236)處的currentThread = AWT-EventQueue-0。 java.xtk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:423)在javafx.stage.Stage。(Stage.java:241)在javafx.stage.Stage。(Stage.java:227)在thebio.MainController.StudentRegistration (MainController.java:134)

下面的方法是我用來進行此活動的一種方法,我不知道我在哪里弄錯了,任何幫助都將不勝感激。

public void StudentRegistration(){
    try {   
        Platform.setImplicitExit(false);
        Parent root1;
        root1 = FXMLLoader.load(getClass().getResource("Student.fxml"));
        Stage stage = new Stage();
        stage.setTitle("ABC");
        stage.setScene(new Scene(root1));  
        stage.show();
    } catch(Exception e) {
        e.printStackTrace();
    }
}

謝謝。

使用平台#runLater更新從非GUI線程的GUI。

Platform.runLater(()->{
    Parent root1;
    root1 = FXMLLoader.load(getClass().getResource("Student.fxml"));
    Stage stage = new Stage();
    stage.setTitle("ABC");
    stage.setScene(new Scene(root1));  
    stage.show();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM