JavaFX
JavaFX(ジャバエフエックス)とはJava仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリである。Java SE 7 Update 2以降に標準搭載されている。Swingとは異なり、FXMLと呼ばれるXMLとCSSを併用してデザインを記述する。
開発元 | オラクル |
---|---|
最新版 |
11
/ 2018年9月18日 |
リポジトリ | |
プラットフォーム | Javaプラットフォーム |
対応言語 | Java |
種別 | リッチ・インターネット・アプリケーション |
ライセンス | EULA, 一部 GPL+リンク例外[1] |
公式サイト |
openjfx |
Javaカード | |
---|---|
Java ME (Micro) | |
Java SE (Standard) | |
Jakarta EE | |
JavaFX |
概要
編集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プロジェクトで続いている[2]。JavaFX 2.xはSolarisや携帯電話をサポートしていないが、OracleはJavaFXをJava SE Embedded 8に統合することを計画しており、ARMプロセッサ用のJavaFXは開発者プレビュー段階である[3]。
2.0 は Windows のみの対応だったが、2.1 から Mac OS X に、2.2 から Linux に対応[4]。
デスクトップ用では、JavaFXは Windows Vista, Windows 7, Windows 8, Windows 10, macOS および Linux をサポートしている[5]。JavaFX 1.2以降、OracleはOpenSolaris用のベータ版をリリースしている[6]。携帯電話用には、JavaFX Mobile 1.x が複数の携帯端末用OS(Symbian OS、Windows Mobile、および登録商標を持つリアルタイムオペレーティングシステムなど)上で走る。
iOSおよびAndroid向けの有償移植版が、「Gluon」という名前で作られた[7]。これは単一のソースコードベースからデスクトップ、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とも呼ばれる)。
参照
編集- ^ “OpenJFX Project”. オラクル. 2011年12月7日閲覧。
- ^ “Google Code Archive - Long-term storage for Google Code Project Hosting”. Code.google.com. 2016年8月1日閲覧。
- ^ “Archived copy”. 2012年12月1日時点のオリジナルよりアーカイブ。2012年11月24日閲覧。
- ^ JavaFXに関してよくある質問
- ^ “JavaFX Supported Configurations”. Oracle.com (2014年4月8日). 2016年8月1日閲覧。
- ^ “Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle”. Java.sun.com. 2016年8月1日閲覧。
- ^ “Rapid Enterprise Mobile Apps: Build, Connect, Manage with Gluon” (2017年12月16日). 2017年12月16日閲覧。