私は JavaFX-2 を試していますが、機能の 1 つは、FXML ファイルで Javascript を使用してイベント ハンドラー関数を作成できると言われています。私を悩ませたのは、System クラスにすぐにアクセスできないことです。「java.lang.System」のように、完全に参照する必要があります。コンソールに単純な出力が必要な場合、それは見苦しくなります。また、私の FXML には <?import java.lang.*?> ステートメントがすべて含まれていますが、明らかに <fx:script> タグ内には影響しません。
サンプルコード: (<?language javascript?>
ディレクティブに注意してください)
<?xml version="1.0" encoding="UTF-8"?>
<?language javascript?>
<?import java.lang.*?>
<?import java.net.*?>
<?import java.util.*?>
<?import javafx.collections.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>
<?import javafx.scene.text.*?>
<AnchorPane fx:id="rootPane">
<fx:script>
function buttonAction(event){
java.lang.System.out.println("finally we get to print something.");
// System.out.println("This wouldn't work even if it wasn't a comment line, anyway");
}
</fx:script>
<children>
<Button id="close" mnemonicParsing="false" onAction="buttonAction(event)" text="">
<graphic>
<ImageView pickOnBounds="true">
<image>
<Image url="@../resources/close.png" preserveRatio="true" smooth="true" />
</image>
</ImageView>
</graphic>
</Button>
</children>
</AnchorPane>
私の質問は次のとおりです。クラスを <fx:script> にインポートする方法はありますか? 私はActionscript3.0でこれを本当に簡単にやっていたことを覚えています: import flash.events.MouseEvent
...