【JavaFXでのアプリケーション作成(備忘録)その1】
Java8とJavaFXでアプリケーションを作ってみよう
新しくアプリケーションを開発するに当たり、Java8とJavaFXの使用感を試してみたいと思いやってみる。
使用する環境はMacBook Pro(OS X Ver.10.8.3 CPU 2.2GHz Intel Core i7 メモリ8GB 1333MHz DDR3)
まずは、Java8 JDKのダウンロード。
ダウンロードはjdk8.java.netからできます。
続いてIDEですがNetBeans IDEがJava8に対応しているという事でこちらから開発版をダウンロードしました。
これらをインストールして早速Java FX FXMLアプリケーションのプロジェクトを新規作成して実行してみました。私がダウンロードした際のJDK最新版はJDK8 Early Access Releasesの8 Build b82でしたがこのバージョンを使ってJavaFX FXML アプリケーションをコンパイル、実行しようとすると以下のようなエラーになり実行できませんでした。
Launching <fx:jar> task from /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/lib/ant-javafx.jar
/Users/labrador-kuro/NetBeansProjects/JavaFXApplication3/nbproject/jfx-impl.xml:1436: The following error occurred while executing this line:
/Users/labrador-kuro/NetBeansProjects/JavaFXApplication3/nbproject/jfx-impl.xml:2668: The following error occurred while executing this line:
/Users/labrador-kuro/NetBeansProjects/JavaFXApplication3/nbproject/jfx-impl.xml:1576:
javax.script.ScriptException: ReferenceError: “org” is not defined in <eval> at line number 178
at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:424)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:408)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:379)
at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:134)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:487)
途中省略
… 54 more
BUILD FAILED (total time: 6 seconds)
ネット検索してみると同じ内容でレポートが上がっていてどうやらb81とb82はだめなようなのでb80をダウンロードしてみるとこちらのビルドでは動作することがわかりました。
JDKをインストールし直して実行して見ると画面が表示されました。
この画面にはメニューバーが付いていますが、これはIDEで生成されたFXMLをJavaFX Scene Builderを使って編集したものです。
JavaFX Scene Builderを使うと画面の構成を簡単に編集できるようです。

各コントロールのアクションに対応した動作はコードを書く必要があります。
@FXML
private void handleMenuItemAction1(ActionEvent event) {
System.exit(0);
}
こんな感じでハンドラを書いておくとScene BuilderのOn Actionに選択リストとして表示されるようになります。
選択してビルドしてみるとちゃんと動作しました。
これでちょっとアプリケーションを作成してみたいと思います。