如何获得新阶段Controller JavaFX的句柄

时间:2016-10-31 14:35:34

标签: java javafx controller scene

我正在开始使用它自己的控制器的第二个场景。我想从另一个类访问该控制器中的方法。如何获得新场景控制器的句柄?

public void startNewScene() throws IOException{
     Stage stage = new Stage();
     Partent root;
     root = FXMLLoader.load(getClass().getResource("fxmlfile.fxml");
     Scene scene = new Scene(root);
     Stage.setScene(scene);
     stage.show();

}

1 个答案:

答案 0 :(得分:2)

创建FXMLLoader实例(而不是使用静态 load(...)方法),并从中获取控制器:

public void startNewScene() throws IOException{
    Stage stage = new Stage();
    FXMLLoader loader = new FXMLLoader(getClass().getResource("fxmlfile.fxml"));
    Parent root = loader.load();
    MyController controller = loader.getController();
    Scene scene = new Scene(root);
    Stage.setScene(scene);
    stage.show();
}

显然将MyController替换为fxmlfile.fxml的控制器的实际类名。