JavaFX

JavaFX（ジャバエフエックス）とはJava仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリである。Java SE 7 Update 2以降に標準搭載されている。Swingとは異なり、FXMLと呼ばれるXMLとCSSを併用してデザインを記述する。

概要 
JavaFXは2007年5月8日のJavaOneで公表された。この時点でRIAプラットフォームとしてはすでにAdobe Flexが普及しており、Microsoft Silverlightのリリースが2007年9月6日に迫っていた。JavaFXは3番目のRIAプラットフォームである。

JavaFXは従来のAWTやSwingによるJavaのGUI開発をより簡単に、その表現力をよりリッチにした新しいプラットフォームである。JavaFXではアニメーションするGUIを簡単に作成することができ、Java AppletおよびJava Web Startを用いてブラウザを通じて簡単に配布・実行できるRIAプラットフォームとなっている。JavaFX自体はブラウザを要さず、単体のJavaアプリケーションとして実行することが可能である。

オラクルの方針により、JDK11からJavaFXはJDKから削除されている。そのため、JavaFXを引き続き利用する場合は、OpenJFXを利用することになる。

フィーチャーフォンなどの組込み向けのJava ME上で動作する JavaFX mobile 1 が2009年2月12日にリリースされたが、JavaFX mobile は JavaFX 2 のリリースとともに廃止。新たにスマートフォン向けのバージョンが計画されている。

JavaFX 1 
JavaFX 1 は2008年12月4日リリース。

JavaFX 1 では、静的型付けされた宣言的言語であるJavaFXスクリプトと呼ばれるプログラム言語を用いて開発する仕組みだった。JavaFXスクリプトはJavaバイトコードにコンパイルされるため、プログラマーはかわりにJavaコードを使うこともできた。

JavaFX 2 
JavaFX 2.0 は2011年10月10日リリース。

JavaFx 2.0以降、JavaFXを用いるアプリケーションは、「普通の」Java APIを利用して、「普通の」Javaコードで書くことになった。JavaFX ScriptはOracleにより廃止されたが、開発は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 が複数の携帯端末用OS（Symbian OS、Windows Mobile、および登録商標を持つリアルタイムオペレーティングシステムなど）上で走る。

iOSおよびAndroid向けの有償移植版が、「Gluon」という名前で作られた。これは単一のソースコードベースからデスクトップ、iOS、Androidデバイス向けのアプリケーションを作ることを可能にするものである。

JavaFX 8 
JavaFXは、Java 8（2014年3月18日リリース）からJRE/JDKの一部となり、バージョン番号も同じ番号にそろえてJavaFX 8となった。

JavaFX 11 
JavaFXは、JDK11に同梱されなくなったため、OpenJFXを利用することになった。

技術的ハイライト 
JavaFX 1.1 は共通プロファイルという概念に基づいている。この共通プロファイルはJavaFXがサポートする全てのデバイスで共通に使われることを意図している。このアプローチにより、開発者はデスクトップ向けと携帯端末向けの両方をターゲットとしたアプリケーションを作るにあたって、共通のプログラミング・モデルを使うことができ、従ってデスクトップ版とモバイル版の間で多くのコード、グラフィック資産、コンテンツなどを共通利用できる。特定の種別のデバイス上で走らすアプリケーション向けの調整を行うニーズに対処するため、JavaFX 1.1にはデスクトップ用あるいはモバイル用に特化したAPIが含まれている。例えば、JavaFXデスクトップ・プロファイルにはSwingや先端的な視覚効果が含まれている。

エンド・ユーザーの視点からみると「ドラッグ・トゥ・インストール」機能によりJavaFXウィジェット（ウェブサイト内にあるアプリケーションであって、ブラウザ・ウィンドウ内で見えるもの）をドラッグ（クリックしたまま引き回す）して、それをデスクトップ上にドロップできる。すると、そのウェブブラウザを閉じても、そのアプリケーションは動作中の状態やコンテキストを失わない。またアプリケーションはユーザのデスクトップ上に自動的に作られたショートカットをクリックすることで再度起動することもできる。サン・マイクロシステムズはドラッグ・トゥ・インストール機能を、開発者が「ブラウザから解放される」ことを可能にする、新しい頒布モデルの幕開けだと宣伝している。

JavaFX 1.x はAdobe PhotoshopおよびAdobe Illustrator用のプラグインのセットを含んでおり、これにより先進的なグラフィックスを直接JavaFXアプリケーションに統合できる。それらのプラグインはJavaFXスクリプトを生成して、グラフィックスのレイヤーや構造を保持する。開発者は取り込んだ静的なグラフィックスに対してアニメーションや視覚効果を容易に追加できる。JavaFX形式への変換後、グラフィックスの取り込みとプレビューを可能にするSVGグラフィックスの変換ツールもあった (Media Factoryとも呼ばれる)。

参照

外部リンク 
 
 JavaFX ドキュメント 

ソフトウェアアーキテクチャ
ウェブアプリケーション
Javaプラットフォーム