JavaFXは、
Java仮想マシン上で動作する
リッチインターネットアプリケーション(RIA)のGUI
ライブラリです。
Java SE 7 Update 2以降に標準搭載されており、従来の
Swingに代わり、より高度な表現力を持つGUIを開発するためのプラットフォームとして利用されています。
概要
JavaFXは、
2007年5月の
JavaOneで発表されました。当時、RIAプラットフォームとしてはAdobe Flexが先行しており、
Microsoft Silverlightも登場間近でした。
JavaFXは、これらに続く3番目のRIAプラットフォームとして登場しました。
従来のAWTや
Swingによる
JavaのGUI開発と比較して、
JavaFXはより簡単かつリッチな表現が可能です。アニメーションを伴うGUIを容易に作成でき、
Java Appletや
Java Web Startを用いてブラウザ上で配布・実行できる点が特徴です。また、
JavaFX自体はブラウザに依存せず、単体の
Javaアプリケーションとしても実行可能です。
しかし、Oracleの方針により、JDK 11から
JavaFXはJDKから削除されました。そのため、
JavaFXを継続して利用するには、OpenJFXを利用する必要があります。
初期には、
フィーチャーフォンなどの組込み機器向けの
Java ME上で動作する
JavaFX mobile 1も存在しましたが、
JavaFX 2のリリースとともに廃止されました。その後、スマートフォン向けの新たなバージョンが計画されています。
2008年12月4日にリリースされた
JavaFX 1では、
JavaFXスクリプトと呼ばれる静的型付けの宣言型
言語を使用して開発が行われていました。このスクリプトは
Javaバイトコードにコンパイルされるため、開発者は
Javaコードを使用することも可能でした。
2011年10月10日にリリースされた
JavaFX 2.0からは、
JavaFXを用いるアプリケーションは、通常の
Java APIと
Javaコードを使用して開発する方式に変更されました。
JavaFXスクリプトは廃止されましたが、Visageプロジェクトで開発が継続されています。
JavaFX 2.xは当初、
Solarisや
携帯電話をサポートしていませんでしたが、Oracleは
JavaFXを
Java SE Embedded 8に統合する計画を進めており、ARMプロセッサ用の
JavaFXは開発者プレビュー段階にありました。
2.0ではWindowsのみがサポートされていましたが、2.1でMac OS X、2.2で
Linuxに対応しました。デスクトップ環境では、
JavaFXはWindows Vista, Windows 7, Windows 8, Windows 10, macOS,
Linuxをサポートしています。また、
JavaFX 1.2以降、Oracleは
OpenSolaris用のベータ版をリリースしていました。
携帯電話向けには、
JavaFX Mobile 1.xがSymbian OS、
Windows Mobileなどの複数のプラットフォームに対応していました。
iOSおよびAndroid向けの有償移植版は「Gluon」という名前で開発され、単一のソースコードからデスクトップ、iOS、Android向けのアプリケーションを作成することを可能にしています。
JavaFXは、
Java 8(2014年3月18日リリース)からJRE/JDKの一部となり、バージョン番号も
Java 8と揃えられました。
JavaFXは、JDK 11から同梱されなくなったため、OpenJFXを利用する必要があります。
技術的ハイライト
JavaFX 1.1では、共通プロファイルという概念が導入されました。このプロファイルにより、デスクトップと携帯端末の両方をターゲットとしたアプリケーション開発において、共通のプログラミングモデルを利用できるようになりました。これにより、多くのコードやグラフィックアセットを共有することが可能になり、効率的な開発が実現しました。特定のデバイス向けの調整には、デスクトップ用やモバイル用に特化したAPIが用意されています。
エンドユーザーの視点からは、「ドラッグ・トゥ・インストール」機能により、ウェブサイト内の
JavaFXウィジェットをデスクトップにドラッグ&ドロップすることで、ブラウザを閉じてもアプリケーションが動作を継続できるという利点がありました。また、デスクトップに作成されたショートカットからアプリケーションを再起動することも可能です。この機能は、
サン・マイクロシステムズによって「ブラウザから解放される」新しい配布モデルとして宣伝されました。
JavaFX 1.xには、Adobe Photoshopと
Adobe Illustrator用のプラグインが含まれており、高度なグラフィックスを
JavaFXアプリケーションに統合できます。これらのプラグインは
JavaFXスクリプトを生成し、グラフィックスのレイヤーや構造を維持したまま取り込むことができます。開発者は、取り込んだグラフィックスにアニメーションや視覚効果を容易に追加できます。また、SVGグラフィックスの変換ツールも提供され、グラフィックスのインポートとプレビューが可能でした。
参照
*
公式ウェブサイト