Javafx控制器中的构造函数
是否可以在Javafx控制器类中创建构造函数Javafx控制器中的构造函数,javafx,constructor,controller,Javafx,Constructor,Controller,是否可以在Javafx控制器类中创建构造函数 我的代码运行得很好,只有在我在一个控制器类中创建构造函数时才出现运行时错误您确定这是编译错误而不是运行时错误(例如,NoSuchMethodException)?也就是说,默认情况下,fxmloader要求控制器类具有无参数构造函数,但您可以通过以下方式自定义该过程。控制器工厂将负责使用适当的参数调用适当的构造函数。@Slaw yes您是对的,这是一个运行时错误,因为它提到了与方法调用相关的内容。另一个选项是从FXML文件中删除fx:controll
我的代码运行得很好,只有在我在一个控制器类中创建构造函数时才出现运行时错误您确定这是编译错误而不是运行时错误(例如,
NoSuchMethodException
)?也就是说,默认情况下,fxmloader
要求控制器类具有无参数构造函数,但您可以通过以下方式自定义该过程。控制器工厂将负责使用适当的参数调用适当的构造函数。@Slaw yes您是对的,这是一个运行时错误,因为它提到了与方法调用相关的内容。另一个选项是从FXML文件中删除fx:controller
,手动实例化控制器类,然后在调用#load()
之前调用fxmloader#setController(Object)
。请注意,无论您选择何种方法,构造函数都将在任何@FXML
字段被注入之前被调用。它与该方法类似,但也增加了。如果您在自定义控件的构造函数中完成了所有fxml工作(设置根、设置控制器、加载fxml),您应该能够拥有一个带有自定义控件参数的构造函数。如前面的评论所述,您只需执行此操作loader.setController(new controller())
(loader
是fxmloader
对象)。这将调用加载程序的构造函数。但最好使用可初始化的
详细信息