2013年2月8日金曜日

こんにちわ、JavaFX

さて、これからはJavaFXでいこうというわけですが…

  • まだ成長途中
  • 日本語解説が少ない
  • Javaのコード*1中心でやりたいのにFXスクリプト*2ばっかり、もはや検索妨害
と、JavaFXは2.xになっても多くのモヤモヤ感を抱えているので、雑魚グラマの分際で恐縮ですがメモと言うよりも初心者向け解説的立場で、詰みそうなところを書いていく感じでしばらく行こうと思います。こっちの勉強にもなるしね。

いかにも最初から細かく開設するような書き方をしてしまいましたがその辺は他の神様方にお願いします。

Swing経験者なら扱いはかなり楽だと思います。コンポーネントはみんなNodeというクラスを継承してるので親子関係(シーングラフっていうみたい)がとてもスッキリしています。また操作も統一感のある印象です。(ただ色とか外観の設定は専用のメソッドがないこともしばしば…styleというCSSチックな書式での設定が必要です)





ここでは開発環境の構築は省略します。必要なのは新しいJavaとNetBeans、ScenBuilderです。

プロジェクト作成

ググるとEclipseでの解説が多いので、NetBeansでの様子を。
まぁ普通にプロジェクト作成です。

JavaFXというカテゴリがない場合は、Javaのバージョンが古いと思います。更新しましょう。
ここではJavaFXアプリケーションまたはJavaFX FXMLアプリケーションを選択します。
  • JavaFXアプリケーション
    JavaのコードだけでUIの構造つまりシーングラフを記述します。
  • JavaFX FXMLアプリケーション
    シーングラフの記述をFXMLというxml形式っぽい書式で行います。ですがもちろん.javaの中でJavaのコードで書き足すこともできます。また、UIの設計をScenBuilderというソフトで視覚的に行えるので便利です。筆者はこっちしか使ったことがありません。プログラミングとデザインを切り離して開発できるとかで画期的らしいです。
他の2つは、謎です。

次の画面でプロジェクト名などを設定します。好きな名前にしましょう。
FXMLの名前はSampleのままでも結構ですが複数のプロジェクトを開くと混乱するので同じ名前をつけるといいと思います。

Hello, World

プロジェクトを作り終えると~~.fxml、~~.java、~~Controller.javaの3つができているはずです。主に~~Controller.javaをいじります。このときすでに実行できるようにコードが書かれているので実行してみましょう。

実行すると、「Device "Intel(R) Graphics Media Accelerator HD" (\\.\DISPLAY2) initialization failed : 
WARNING: bad driver version detected, device disabled. Please update your driver to at least version 8.15.10.2302」みたいな警告文が出る人がいるかもしれません。多分マルチモニタとかのせいだと思いますが、謎です。無視しましょう。


ひとまず今回はここまでです。


*1:xmlでもJavascriptでもないJavaの文法で書かれたコード。正式名称は、謎です。
*2:Javascriptっぽい文法で書かれたコード、完全に謎です。

    2 件のコメント:

    1. 検索でJavaFX Scriptを排除するためには、検索に期間を設定するといいですよ。JavaFX 2.0がリリースされたのが2011.10なので、2012年以降で検索すればJavaFX 2.0以降のエントリーがヒットするはずです。

      styleはCSSチックではなくて、CSSなんですww

      返信削除
    2. 期間設定はよくやっていますが、あまり排除できませんね…

      いやあ、物の名前をしっかり把握してないので濁しちゃうんですよね、訂正はしませんwww

      返信削除