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中文網其他相關文章!