タツノオトシゴのブログ

主にJavaに関するものです。

JavaFX2.xを使ってみた感想

はじめに

JavaFXを仕事で使おうかと思い、色々と調査したので、メモ代わりに書いておこうと思います。

長所
  • AWT/Swingと比べて非常に簡単に作れる。
  • FXMLにより、View部分を完全に分離できる。
    • 今まで、Viewの組み立てだけでコード量が膨大になっていたので、JavaFXはコードがスッキリする。
    • FXMLは記述自体は、別アプリのScene Builderによりドラッグ&ドロップで簡単に記述できるため、ほとんど覚える必要はない。
  • ControllerをPOJOで作成できる。
    • FXMLとのヒモヅケは、アノテーション「@FXML」にできる。
    • FXMLで組み立てたSceneやPaneの階層構造によらずControllerにマッピングできるため、Controllerのコードがスッキリする。
  • GUIレンダリングにOSの機能を利用しているので、アプリケーションとして違和感がない。
    • FileChooserやDirectoryChooserがOS標準のが利用できる。
    • 今まで、外観や性能を気にするならば、SWTを利用していたが、それが必要なくなった。
  • 2014年リリース予定のJava8から標準のGUIフレームワークになる予定。
短所
まとめ
  • 非常に魅力的で、AWT/Swingなどは非常にコードがゴチャゴチャしていたが、強制的にModel/View/Controllerを分離されるため、コードの可読性があがりメンテ性が高い。
    • パターンを決めれば、初心者でも結構簡単にできる。
  • イメージとしては、WebフレームワークのWicketJavaFX版が出てくるとありがたい。
    • 現状、Validatorなど自作することが多い。
  • 開発環境が充実しているのがNetBeans
    • EclipseではScene Builderを呼ぶプラグインなど簡単なものだけある。
    • Mavenを使う場合は、パッケージングする際などは、独自にAntスクリプトを書く必要がある。
  • DatePickerや印刷機能が出そろうのがJava8からで、サードパーティ製のライブラリもJava8に合わせて作成されているものが多い。
    • ちょっとしたツール程度のものであれば、現状のJava7でよいが、本格的なGUIを作成しようとした場合、Java8が出るまで待っていた方がよい。