Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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传递的控制器时出现Null异常_Javafx - Fatal编程技术网

尝试访问使用JavaFX传递的控制器时出现Null异常

尝试访问使用JavaFX传递的控制器时出现Null异常,javafx,Javafx,我有一个带有多个选项卡的根布局。我从主应用程序打开根布局。在那里,我包括了多个FXML和它们自己的控制器。 我正在尝试将主控制器传递给Tabes控制器之一 我遇到的问题是,一切都按预期进行,但当我尝试单击新选项卡上的操作按钮时,会出现空异常 RootLayout-FXML 然而,如果我触发这个动作,我会从同一个控制器中得到空白 @FXML public void createAction(ActionEvent event) throws IOException{ System.out.pri

我有一个带有多个选项卡的根布局。我从主应用程序打开根布局。在那里,我包括了多个FXML和它们自己的控制器。 我正在尝试将主控制器传递给Tabes控制器之一

我遇到的问题是,一切都按预期进行,但当我尝试单击新选项卡上的操作按钮时,会出现空异常

RootLayout-FXML 然而,如果我触发这个动作,我会从同一个控制器中得到空白

@FXML 
public void createAction(ActionEvent event) throws IOException{
System.out.println(rootController.getID); // with this I get null value. 
}
我错过了什么

问题是:

 @FXML NewTabController newTabController;

它应该是myNewTabAnchorPaneController,它不是部分小写的类名,而是fx:id+控制器连接。

是ntc还是ect?假设两者都是nct,则不保留对控制器的引用,也不将其与FXMLLoader一起使用,这意味着您可能使用两个不同的控制器实例:一个与FXMLLoader一起使用,另一个用于设置根控制器。这个问题可能会有所帮助:唯一的区别是,我有多个选项卡使用不同的FXML,它们使用自己的控制器。所以我不会展示一个新的舞台,因为它已经打开了。我的设置如何实现这一点?我没有写任何关于阶段的东西。如果你指的是我链接的问题:无论你加载的内容是否在新阶段显示,将信息传递给控制器的方法都是一样的。非常感谢Sergey!我真的很感谢你在这里的帮助。我不确定这是不是有人记录的,我希望是的。再次感谢!
public void setMyRootController(RootController rootController){
this.rootController = rootController;
System.out.println(rootController.getID); // this prints fine
}
@FXML 
public void createAction(ActionEvent event) throws IOException{
System.out.println(rootController.getID); // with this I get null value. 
}
 @FXML NewTabController newTabController;