Javafx 为什么我的视图不再与其控制器通信,因为控制器是手动设置的?
自从我手动设置控制器以来,相应的视图似乎无法识别我的控制器。“我的控制器”无法识别任何视图元素,其视图也无法识别任何“我的控制器”方法。当我将鼠标悬停在视图中的Javafx 为什么我的视图不再与其控制器通信,因为控制器是手动设置的?,javafx,model-view-controller,nullpointerexception,javafx-8,fxml,Javafx,Model View Controller,Nullpointerexception,Javafx 8,Fxml,自从我手动设置控制器以来,相应的视图似乎无法识别我的控制器。“我的控制器”无法识别任何视图元素,其视图也无法识别任何“我的控制器”方法。当我将鼠标悬停在视图中的onaction='#…eventHandler'上时,它表示没有为顶级元素指定控制器 但是,我已经设置了控制器(这是主控制器,然后在其他地方为弹出窗口设置了另一个控制器): 当我运行该程序时,出现以下错误: Exception in Application start method java.lang.reflect.Invocatio
onaction='#…eventHandler'
上时,它表示没有为顶级元素指定控制器
但是,我已经设置了控制器(这是主控制器,然后在其他地方为弹出窗口设置了另一个控制器):
当我运行该程序时,出现以下错误:
Exception in Application start method
java.lang.reflect.InvocationTargetException
...
Caused by: java.lang.NullPointerException at sample.FoodDiaryController.initialize(FoodDiaryController.java:72)
这恰好是引用视图中某个图元的第一行代码:
@FXML private TableView<Food> breakfastTable;
有谁能暗示为什么会发生这种情况
先决条件:
- 我必须手动设置我的控制器,因为我没有对控制器使用无参数构造函数
- 我在用IntelliJ
foodDiaryView.fxml
缺失(将示例限制为根元素&
),查看所涉及的FoodDiaryController
部分也会很有好处(breakfastTable
declaration,foodDiary
constructor中的声明和赋值,initialize
part设置项目)。还要确保你没有通过最小化示例删除导致问题的部分。投票决定暂时不生产MCVE关闭…@kleopatra我在发布之前阅读了此指南,但我真的不知道问题来自何处,因此无法生成示例。将此上传到Github回购和链接是一个好主意吗?如果不,您有什么建议?只需在手动设置控制器后/之前生成一个有/没有问题的简短示例,并将其发布到此处:)@GeorgeBakerfooddaryview.fxml
缺失(将示例限制到根元素&
),并且查看所涉及的fooddaryController
的部分也将是有益的(breakfastTable
declaration,foodDiary
constructor中的声明和赋值,initialize
part设置项目)。另外,请确保您没有通过最小化示例删除导致问题的部件。投票支持关闭,因为目前不生产MCVE…我尝试使用setControllerFactory,回答如下:但是这对我不起作用,我在加载时仍然会出错()。感谢您的建议!我尝试使用setControllerFactory,如下所示:但是这对我不起作用,我在加载()时仍然收到错误。感谢您的建议!
@FXML private TableView<Food> breakfastTable;
breakfastTable.setItems(foodDiary.getBreakfastFoods());