我已经看过几次这个问题,但不幸的是我无法从给定的答案中解决我的问题。 This最适合我,很容易理解。
我有1个主要,2个控制器(主要,次要)和2个fxml(主要,次要)文件。这是我从主控制器打开第二个窗口的方法:
@FXML
private void handleButtonOpenSecondWindow(ActionEvent event) {
try{
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("SecondWindow.fxml"));
Parent root1 = (Parent) fxmlLoader.load();
Stage stage = new Stage();
stage.initModality(Modality.APPLICATION_MODAL);
stage.setTitle("Second Window");
stage.setScene(new Scene(root1));
stage.show();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
这很好用,上面我想要的是在上面的括号中的某处添加我的对象。
也许:
root1.setMyObjects(object1, object2);
我尝试将我的代码转换为我喜欢的答案,但是当我为辅助控制器创建构造函数时,Parent root1 = (Parent) fxmlLoader.load();
行总是失败(但是当从主控制器调用时它可以工作)。我在辅助控制器中也有initialize();
方法。我尝试使用构造函数,没有构造函数,将构造函数部分放入initialize();
,但没有一个工作......如果你能伸出援手,我会很高兴。
答案 0 :(得分:0)
您应该在第一个控制器中使用全局变量,并在第二个控制器中获取变量。