Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaFX中将对象传递到第二个窗口?_Java_User Interface_Javafx_Controller_Fxml - Fatal编程技术网

如何在JavaFX中将对象传递到第二个窗口?

如何在JavaFX中将对象传递到第二个窗口?,java,user-interface,javafx,controller,fxml,Java,User Interface,Javafx,Controller,Fxml,这个问题我已经被问过好几次了,但不幸的是,我无法从给出的答案中解决问题。最适合我,容易理解 我有1个主控制器、2个控制器(主控制器、辅助控制器)和2个fxml(主控制器、辅助控制器)文件。这是我从主控制器打开第二个窗口的方式: @FXML private void handleButtonOpenSecondWindow(ActionEvent event) { try{ FXMLLoader fxmlLoader = new FXMLLoader(getClass()

这个问题我已经被问过好几次了,但不幸的是,我无法从给出的答案中解决问题。最适合我,容易理解

我有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)fxmloader.load()行总是失败(但从主控制器调用时它会工作)。我有一个
initialize()方法以及辅助控制器中的方法。我尝试使用构造函数,但没有使用构造函数,将构造函数部分放入
initialize()但都不起作用。。。如果您能帮忙,我会很高兴。

您应该在第一个控制器中使用全局变量,并在第二个控制器中获取变量