2

私は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 コントローラ ファイルを使用せずに) 埋め込むことができるようにするための回避策はありますか?

4

2 に答える 2

3

fxml のスクリプトは、HTML と同じようにインラインで実行されると思います。そのため、実行するスクリプト ステートメントを関数内に配置しないでください。

サンプルについては、このfxml+JavaScript メトロノーム アプリケーションを参照してください。

于 2013-05-18T23:08:42.180 に答える
1

コントローラーは、javafx.fxml.Initializable インターフェースも実装する必要があります。初期化メソッドが呼び出されるようにします。コントローラーのコード例はこれを示していますが、説明はあまり明確ではありません。

FXML スクリプトについてはよくわかりません。

于 2013-05-18T09:00:27.553 に答える