JavaFX FXML 控制器:区分构造函数和初始化方法的角色
在 JavaFX 中,FXML 用于以声明方式构造用户界面。 FXML 文件的 fx:controller 属性中指定的控制器类充当 GUI 元素的交互逻辑。两个生命周期方法,构造函数和initialize()方法,在初始化控制器时起着至关重要的作用。
首先调用构造函数,然后注入@FXML字段及其相应的Java对象。随后,执行initialize()方法。
构造函数与Initialize方法
构造函数和initialize()方法的关键区别在于初始化的时机它们的执行以及对 FXML 注释的访问。构造函数首先执行,但它无法访问用@FXML注释的字段。这些字段只能在initialize()方法中访问。
这允许构造函数在FXML组件注入之前执行任务,而initialize()方法可以访问和操作这些注入的组件。
实际使用
构造函数应该用于在 GUI 完全加载之前需要执行的任务,例如从一个数据库。另一方面,initialize() 方法适合初始化 GUI 组件,例如设置事件处理程序或修改其默认值。
示例
考虑以下代码:
public class MainViewController { // Constructor public MainViewController() { System.out.println("first"); } // Initialize method @FXML public void initialize() { initializeComponents(); System.out.println("second"); } private void initializeComponents() { // Initialize GUI components, e.g., add event handlers } }
在此示例中,构造函数在将任何 Java 对象注入到FXML 注释字段。然后,在注入这些字段后,initialize() 方法会打印“秒”。这演示了这些生命周期方法的顺序执行。
以上是JavaFX FXML:构造函数与 `initialize()` 方法 – 有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!