![]() |
【注意】 この項目は、JavaFX 2.0以降の情報が書かれています。 JavaFX 1.x系以前の情報はこちら。 |
JavaFXとは、Javaの標準GUIライブラリである(Java 8以降)。お金が溶けるFXとは何の関係もない。
JavaFXはサン・マイクロシステムズ社がプログラミング言語として開発した。同社の買収したForm Follows Function (F3)とSavaJeと呼ばれるJava関連技術を発展させて2008年12月にパージョン1.0がリリースとなった。
2009年8月にサン・マイクロシステムズはOracleに買収され、Java及びJavaFXはOracleが引き継ぐところとなったが、2010年9月OracleはJavaFX 2でJavaFX Scriptを廃止することを発表[1]。これによりJavaFXは全く別物のGUIライブラリへと生まれ変わることとなる。
これまでJavaの標準GUIライブラリはSwingであったが、今後はJavaFXを標準GUIライブラリとしていくことも発表された。
JavaFX 2.0は2011年10月10日にリリースされたので、一口にJavaFXといってもこの2011年10月の前と後では全く別物を指している。Web上で情報を探したり、書店で書籍を探したりするときは日付に注意されたい。
JavaFX 2.2の次のバージョンは3.0となる予定だったが、2014年3月18日にリリースされたJava 8以降では標準ライブラリとしてJava仮想マシンに組み込まれることに(Java 7 Update2以降であれば標準搭載されてはいる)なったため、JavaのバージョンにあわせてJavaFX 8になり大きくバージョン番号が飛ぶことになった。
MVC(モデル・ビュー・コントローラー)モデルでGUIを作成する。
モデルはユーザー(プログラマー)が各自でクラスを作成する。コントローラーについてもユーザーがクラスを作成するが、書き方についてはJavaFX独自の作法がある。
ビューの部分はJavaのソースコードに記述することも可能だが、FXMLというXMLで分離して記述できることが特徴[2]。このFXMLをGUIを通じて作成するScene BuilderというフリーウェアがOracleから配布されており、これによって視覚的にGUIを設計することが可能になった。
フォントや色などの外観はFXMLにCSSを組み合わせることでも変更することができ、さらにこのCSSを外部ファイルとして独立させることも可能である。
Swingなどで既にGUIをマスターしている人には当然なのかもしれないが、JavaFXのGUIを使用すると、GUIに変更を行うためのスレッド(Application Thread: SwingでいうEvent Dispatch Thread)が自動的に生成される。(動画処理などを除き)すべてのGUI変更命令はこのスレッドに集められ、一本化されてから実行される。
ユーザーが明示的に作ったものでないにもかかわらず、このスレッドの存在を意識してコードを書かないと、マルチスレッドの罠にはまって理解できない動作に悩まされることになる。
JavaFX 2.x系では、Swingの中にJavaFXの部品を入れることはできたが、逆は出来なかった。しかし、JavaFX 8以降では、SwingNodeの導入により相互運用することが可能になっている。
プラットフォームはJava仮想マシンが動作する環境、すなわちWindows、Mac、Linuxだが、実用性や安定性を別にすればiOSやAndroidについても以下のようなプロジェクトが存在する。2014年8月現在、Java自体がWindowsのModern UI(旧称Metro)に対応していないため、現時点ではデスクトップアプリケーションの開発が主体であると思われるが、JavaFX自体、タッチやスワイプなどタッチパネル操作を前提にした項目も存在しているので、将来的にはJavaFXでモバイルアプリを開発できる日が来るのかもしれない。
2014年7月現在では、JavaFX 1.x系の関連動画しかないようです。
急上昇ワード改
最終更新:2026/01/11(日) 15:00
最終更新:2026/01/11(日) 15:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。