JavaFX-可以将应用程序类作为控制器类目前,我正在自学JavaFX,我使用了一个简单的示例程序,它硬编码视图,并将其转化为使用FXML的视图(主要是为了让我可以使用SceneBuilder构建UI)。我使用的不是单独的控制器类,而是应用程序类(因此有一个Java文件和一个FXML文件)。我没有用initialize()方法,因为它是一个线性流(显示UI、填充字段、等待输入)。视图弹出,但是应用程序出错,因为没有一个控件被映射到适当的变量(所以)@FXML TableView<...> table, table是null).但是,我输入了一个initialize()方法时注入控件。initialize()时,然后返回为空。initialize()出口。所以问题是,JavaFX是否将应用程序类的新实例化为单独的控制器类?这将解释为什么变量超出了范围。或者是其他的东西(例如,只有在从JavaFX操作中被调用时才注入控件)?
3 回答

慕妹3146593
TA贡献1820条经验 获得超9个赞
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("example.fxml"));fxmlLoader.setController(this);Parent root = (Parent)fxmlLoader.load();

HUH函数
TA贡献1836条经验 获得超4个赞
“FXMLLoader的默认行为是创建控制器类的一个新实例,并将该实例用作控制器。”这就是我想要发生的事。我正在尝试快速而肮脏的转换,现在显然没有遵循最佳实践
添加回答
举报
0/150
提交
取消