3
我正在搜索一個EventListener或將在我加載FXML文件時運行的方法。JavaFX 2.2 onLoad方法等效
JavaFX是否有類似Javascript onLoad的東西?
我只是想運行一個方法,將清除TextFields中的任何數據。
我正在搜索一個EventListener或將在我加載FXML文件時運行的方法。JavaFX 2.2 onLoad方法等效
JavaFX是否有類似Javascript onLoad的東西?
我只是想運行一個方法,將清除TextFields中的任何數據。
當FXML加載
在您的控制器類中調用代碼,定義一個方法:
public void initialize(URL location, Resources resources)
該方法將自動地被FXMLLoader加載FXML文件時被調用。
在Introduction to FXML中有一個示例(我剛剛複製,稍作修改,在此處)。
FXML
<VBox fx:controller="com.foo.MyController"
xmlns:fx="http://javafx.com/fxml">
<children>
<Button fx:id="button" text="Click Me!"/>
</children>
</VBox>
的Java
package com.foo;
public class MyController {
@FXML private Button button;
@FXML
protected void initialize()
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("You clicked me!");
}
});
}
}
的觀察根據您的問題
你可能有怎樣FXML處理的輕微誤解的作品,因爲當你加載一個FXML文件,通常會創建一組新的節點(例外情況可能是將控制器設置爲FXMLLoader時,或者將FXMLLoader與依賴注入系統結合使用,但這兩種情況都不適用)。這意味着沒有必要「運行一個方法來清除TextField中的任何數據」,因爲文本字段是新節點,並且除非您將文本設置在FXML中,否則不會有任何數據。如果你只是想清除它,你不需要做)。
謝謝!最後一個問題是,另一種情況是我想將一個id變量傳遞給第二個fxml控制器,並希望使用從MYSQL數據庫檢索的數據填充文本字段。現在我只需按一下按鈕即可檢索數據並填充字段。我會在哪裏放置方法/函數來運行它,以便它在創建fxml頁面時運行? – user2690440
請參見[在FXML中傳遞參數](http://stackoverflow.com/questions/14187963/passing-parameters-javafx-fxml)。 – jewelsea