gpt4 book ai didi

javafx-2 - JavaFX 2.2 onLoad 方法等效项

转载 作者:行者123 更新时间:2023-12-02 21:43:26 24 4
gpt4 key购买 nike

我正在寻找在加载 FXML 文件时运行的 EventListener 或方法。

JavaFX 是否有类似于 Javascript onLoad 的功能?

我只是想运行一个方法来清除文本字段中的所有数据。

最佳答案

加载 FXML 时调用代码

在 Controller 类中,定义一个方法:

@FXML
protected 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 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!");
}
});
}
}

不带位置和网址的initialize()方法

为了简化事情,如果您的初始化方法不需要访问用于解析根对象相对路径的位置,或用于本地化根对象的资源包,您可以跳过实现 Initializable只需定义一个公共(public)无参数初始化方法,FXML 加载器就会调用该方法:

public void initialize() 

有关更多信息,请参阅:

基于您的问题的观察

您可能对 FXML 处理的工作原理有一点误解,因为当您加载 FXML 文件时,通常会创建一组新的节点(异常(exception)情况是您将 Controller 设置到 FXMLLoader 中或将 FXMLLoader 与依赖注入(inject)系统,但这两种情况都可能不是你的情况)。这意味着不需要“运行从 TextFields 中清除任何数据的方法”,因为文本字段是新节点,并且其中不会有任何数据,除非您在 FXML 中设置文本(其中如果您只是要清除它,则不需要执行此操作)。

关于javafx-2 - JavaFX 2.2 onLoad 方法等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21896533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com