JavaScripting API (Rhino) を介して JavaScript から JavaFX 2 を使用して実験しています。
注: これはリッチ クライアントに関する質問であり、Web プログラミングとは関係ありません。
JavaFX リッチクライアント アプリケーションの一部を動的スクリプトで調整したいと考えています。JavaScript ランタイム (Rhino) がバンドルされた JavaScripting API が私の要件に適したアプローチであるかどうかを評価しています。
そこで、私の最初の試みは、JavaScript を使用して単純な JavaFX-GUI を作成することでした。
print('Starting...')
importPackage(Packages.javafx.scene);
importPackage(Packages.javafx.scene.layout);
importPackage(Packages.javafx.stage);
importClass(Packages.javafx.scene.layout.StackPane);
importClass(Packages.javafx.scene.Scene);
importClass(Packages.javafx.stage.Stage);
myroot = new Packages.javafx.scene.layout.StackPane();
myscene = new Packages.javafx.scene.Scene(myroot);
mystage = new Packages.javafx.stage.Stage();
mystage.setScene(myscene);
mystage.show();
次に、このスクリプトを jsrunscript で実行しています。このスクリプトのインスピレーションは、Oracle のドキュメントから得られました。
ただし、スクリプトは 4 行目で既に失敗しています。
> ☹ jrunscript -f script.js
> Starting...script error in file script.js :
> sun.org.mozilla.javascript.internal.EvaluatorException: Function importClass must be called with a class; had "[JavaPackage javafx.scene.layout.StackPane]" instead. (script.js#4) in script.js at line number 6
JavaFx パッケージ/クラスを JavaScript ランタイムにインポートできないようです。オラクルのドキュメントには、java.awt でこれが記載されていますが。
私は何を間違っていますか?