FXML,脚本标记和初始化方法

FXML, script tag and initialize method

本文关键字:初始化 方法 脚本 FXML      更新时间:2023-09-26

我正在测试和发现JavaFX。

在JavaFX关于控制器的FXML文档中,据说如果控制器有一个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>

我错过了什么,或者只是不可能从FXML文件做到这一点?

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

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

查看这个fxml+JavaScript节拍器应用程序的示例

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

我不确定FXML脚本