我正在搜索一个EventListener或方法,它将在我加载FXML文件时运行.
JavaFX有类似于Javascript onLoad的东西吗?
我只想运行一个方法来清除TextFields中的任何数据.
jew*_*sea 14
加载FXML时调用代码
在您的控制器类中,定义一个方法:
@FXML
protected void initialize(URL location, Resources resources)
Run Code Online (Sandbox Code Playgroud)
加载FXML文件时,FXMLLoader将自动调用此方法.
FXML简介中有一个示例(我刚刚在这里复制了它,略有修改).
FXML
<VBox fx:controller="com.foo.MyController"
xmlns:fx="http://javafx.com/fxml">
<children>
<Button fx:id="button" text="Click Me!"/>
</children>
</VBox>
Run Code Online (Sandbox Code Playgroud)
Java的
package com.foo;
public class MyController implements Initializable {
@FXML private Button button;
@FXML
protected void initialize(URL location, Resources resources) {
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("You clicked me!");
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
没有location和url的initialize()方法
为简化起见,如果初始化方法不需要访问用于解析根对象的相对路径的位置,或者用于本地化根对象的资源包,则可以跳过实现Initializable并仅定义公共无参数初始化方法,FXML加载器将调用:
public void initialize()
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅
根据您的问题进行观察
您可能对FXML处理的工作原理略有误解,因为当您加载FXML文件时,通常会创建一组新节点(例外情况可能是您将控制器设置为FXMLLoader或将FXMLLoader与依赖注入系统结合使用时,但这些都不是你的情况).这意味着没有必要"运行一个方法来清除TextFields中的任何数据",因为文本字段是新节点,除非你在FXML中设置文本,否则不会有任何数据.如果你要清除它,你就不需要这样做了.)
| 归档时间: |
|
| 查看次数: |
13762 次 |
| 最近记录: |