在 JavaFX 中,FXML 控制器負責提供 FXML 檔案背後的邏輯。雖然建構函式和initialize()方法在初始化控制器方面具有相似的用途,但它們具有不同的特徵,會影響控制器的配置時間和方式。
在控制器初始化過程中先呼叫建構子。它用於設定任何必要的欄位或執行不需要引用 FXML 定義的元件的任務。但是,由於此時尚未填充@FXML 註解的字段,建構函數無法與它們互動。
相反,在填入@FXML 註解的欄位後呼叫initialize() 方法。這意味著它可以存取和操作 FXML 檔案中定義的元件。這是初始化元件並執行依賴其存在的任務的建議方法。
為了說明差異,請考慮以下範例:
public class MainViewController { private Button myButton; public MainViewController() { System.out.println("first"); } @FXML public void initialize() { System.out.println("second"); setDisableMyButton(); } private void setDisableMyButton() { myButton.setDisable(true); } }
在此範例中,建構函式簡單地列印“first”,而initialize() 方法列印“second”,然後停用“myButton”組件。輸出將是:
first second
透過使用initialize()方法來操作帶有@FXML註解的元件,您可以確保元件在與它們互動之前已正確初始化。這有助於確保程式碼的一致性和可靠性。
以上是JavaFX FXML 控制器:建構子與 `initialize()` 方法 – 我什麼時候該使用哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!