我有一个带有倍数Tabs的根布局。从我的主应用程序我打开根布局。我在其中包含了多个带有自己控制器的FXML。 我试图将主控制器传递给其中一个Tabes控制器。
我遇到的问题,一切都按预期工作,但当我尝试点击新标签中的操作按钮时,我收到null
个异常。
<fx:indlue fx:id="myNewTabAnchorPane" source="NewTabFXML.fxml"/>
@FXML NewTabController newTabController;
mainTabPane.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Tab>(){
@override
public void change(ObservableValue<? extends Tab> observable, Tab oldValue, Tab newValue){
if(newValue == myTab){
newTabController.setMyRootController(this);
}
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.
}
我错过了什么?
答案 0 :(得分:1)
问题在于:
@FXML NewTabController newTabController;
它应该是myNewTabAnchorPaneController
,它不是部分小写的类名,而是fx:id + Controller
连接。