JavaFX FXML 控制器:建構子與初始化方法
了解初始化順序
將JavaFX 與FXML 結合使用時,了解控制器的初始化順序是至關重要的。建立 FXML 檔案中指定的控制器類別的實例後,會發生以下步驟:
-
建構子呼叫: 呼叫控制器的預設建構子。
-
FXML 欄位填入: 控制器中以 @FXML 註解的任何欄位都會使用中定義的對應元件進行填入FXML 檔案。
-
initialize() 方法呼叫: 控制器的initialize() 方法被執行。
建構子與initialize() 方法控制器初始化
建構子與initialize()方法在初始化控制器時有不同的目的控制器:
-
建構子: 首先呼叫建構函數,並負責獨立於FXML 元件所引用的任何初始化任務。
-
initialize()方法: 填入 FXML 欄位後呼叫initialize() 方法。它提供了一個合適的機會來執行任何需要存取這些元件的後處理或附加初始化。
initialize() 方法存取 FXML 欄位的重要性
存取FXML元件所引用的initialize()方法至關重要。雖然建構子無法存取這些引用,但initialize()方法可以使用它們來存取控制項屬性、設定事件偵聽器或執行其他操作。
用法範例
在提供的程式碼範例,輸出示範了此行為:
- MainViewController 的建構函式列印「第一個。」
- MainViewController 的建構子列印「第一個。」
initialize()方法列印「第二個。」
此序列說明了在填充 FXML 欄位後呼叫了initialize() 方法,並且該方法是在適當的地方使用這些參考進行控制器初始化。
以上是JavaFX FXML 控制器:建構子或 `initialize()` 方法 - 哪一個用於初始化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!