Java FXML、脚本标记和初始化方法

Java FXML、脚本标记和初始化方法,java,javascript,javafx-2,fxml,Java,Javascript,Javafx 2,Fxml,我正在测试和发现JavaFX 在JavaFX中,据说如果控制器有一个public void initialize()方法,则在加载FXML图形后将调用该方法 是否可以通过脚本方式从FXML文件执行类似的操作?我尝试了类似的方法,但是根本没有调用initialize() <?xml version="1.0" encoding="UTF-8"?> <?language javascript?> <?import javafx.scene.control.*?>

我正在测试和发现JavaFX

在JavaFX中,据说如果控制器有一个
public void initialize()
方法,则在加载FXML图形后将调用该方法

是否可以通过脚本方式从FXML文件执行类似的操作?我尝试了类似的方法,但是根本没有调用
initialize()

<?xml version="1.0" encoding="UTF-8"?>

<?language javascript?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane xmlns:fx="http://javafx.com/fxml">

    <fx:script>
    importClass(java.lang.System);

    function initialize() {
        System.out.println('hello');
    }  
    </fx:script>

    <Button text="Button" />

</AnchorPane>

importClass(java.lang.System);
函数初始化(){
System.out.println('hello');
}  
我是否遗漏了某些内容,或者只是无法从FXML文件中执行这些操作


是否有一种解决方法,使FXML文件可以嵌入一些代码,这些代码在加载后将自动执行(无需使用外部Java控制器文件)?

控制器还必须实现javafx.FXML.Initializable接口。对于要调用的initialize方法。控制器的代码示例显示了这一点,但描述不是很清楚


我不确定FXML脚本。

控制器还必须实现javafx.FXML.Initializable接口。对于要调用的initialize方法。控制器的代码示例显示了这一点,但描述不是很清楚


我不确定FXML脚本是否正确。

我认为FXML中的脚本将像HTML中的脚本一样以内联方式执行。因此,您不会将要执行的脚本语句放在任何函数中


查看此示例。

我认为fxml中的脚本将像在HTML中一样以内联方式执行。因此,您不会将要执行的脚本语句放在任何函数中


查看此示例。

它似乎已更改。根据文档“此接口已被位置和资源属性自动注入控制器所取代。FXMLLoader现在将自动调用控制器定义的任何适当注释的no arg initialize()方法。建议尽可能使用注入方法。”Ha,你每天都在学习。注入方法(与initializeable中的方法具有不同的签名)似乎比接口记录的更少。参考资料是一个用@FXML注释的字段。它似乎已更改。根据文档“此接口已被位置和资源属性自动注入控制器所取代。FXMLLoader现在将自动调用控制器定义的任何适当注释的no arg initialize()方法。建议尽可能使用注入方法。”Ha,你每天都在学习。注入方法(与initializeable中的方法具有不同的签名)似乎比接口记录的更少。资源是一个用@FXML注释的字段。非常简单:-)我将其与控制器中初始化的执行进行了比较:内联脚本甚至在控制器之前执行。非常简单:-)我将其与控制器中初始化的执行进行了比较:内联脚本甚至在控制器之前执行。