2016-03-22 126 views
0

如果狀態爲「1」,我想加載另一個FXML文件。但是在下面的代碼中,它不會從initialize加載另一個FXML。如果我使用一個按鈕,然後這個代碼工作,但我想這樣做沒有任何按鈕。任何人都可以通過給我一個建議來幫助我嗎?從FXML初始化加載另一個FXML

@Override 
public void initialize(URL url, ResourceBundle rb) { 
    String status = "1"; 
    if(status.equals("1")){ 
     try { 
      Parent root = null; 
      root = FXMLLoader.load(getClass().getResource("/fxml/anotherFXML.fxml")); 
      Scene scene = new Scene(root); 
      MainClass.getStage().setScene(scene); 
      MainClass.getStage().show(); 

      System.err.println("Success"); 

     } catch (IOException ex) { 
      System.err.println("Failed"); 
     } 
    } 
} 

回答

0

實際上,它不是一個好方法加載initialize方法中的新場景,它會導致異常。

順便說一句,你可以用一些秒延時這樣做,因爲你想在一個時間打電話給stage.show()兩次(一次在initialize方法,一旦在你的Application類)。

例如,您可以使用PauseTransition

@Override 
public void initialize(URL location, ResourceBundle resources) { 

    PauseTransition delay = new PauseTransition(Duration.seconds(1)); 
    delay.setOnFinished(event -> { 
     //load your view 
    }); 
    delay.play(); 

}