我现在正在教自己JavaFX,我已经采用了一个简单的示例程序,该程序硬编码视图并将其转换为使用FXML的程序(主要是因为我可以使用SceneBuilder来构建UI).我没有编写单独的控制器类,而是使用应用程序类(因此有1个Java文件和1个FXML文件).我没有使用initialize()方法,因为它是线性流(显示UI,填充字段,等待输入).弹出视图,但随后没有任何控件被映射到适当的变量,因此应用程序出错(因此@FXML TableView<...> table,table是null).
但是,我输入了一个initialize()调试方法,在进入时注入控件initialize(),然后在initialize()退出时返回null .
所以问题是,JavaFX是否将应用程序类的新实例实例化为单独的控制器类?这可以解释为什么变量超出范围.或者它是否是其他东西(例如,仅在从JavaFX动作回调时才注入控件)?