今回から、JavaFXについて紹介していくことにします。

 今まで、本連載ではJavaFXにつれて触れることが多くあったのですが、まとめて系統的に紹介することはありませんでした。新しいことを始めるにはちょうどいい季節でもあるので、はりきって紹介していきましょう。

 JavaFXは2008年12月にリリースされたGUIを構築するためのプラットフォームです。一般的にはRIA用とされることが多いのですが、RIAという枠にとらわれることなく様々なGUIを構築することが可能です。

 JavaFXはプラットフォーム名であり、そこで動作させるアプリケーションはJavaFX Scriptというスクリプト言語を用いて記述します。

 JavaFXはJava VM上で動作します。また、JavaFXはターゲットとなる機器により複数のバリエーションがあります。

 PCで動作するJavaFX DesktopはJava SEで動作します。携帯電話向けのJavaFX MobileはJava MEのCLDCで動作します。現在はまだ公開されていませんが、テレビやセットトップボックスなどで動作するJavaFX TVもリリース予定です。

 これらのバリエーションがあっても、スクリプトはほとんど同一のものが使用できます。バリエーションにより使えるAPIが異なりますが、基本的な構成はどのJavaFXでも同一です。

 つまり、Javaが登場した時のコンセプトである、Write Once, Run AnywhereがJavaFXでは実現できるのです。

図1●JavaFXの構成
図1●JavaFXの構成

JavaFXの歴史

 もともと、JavaFXはSeeBeyondのChristopher Oliver氏による個人的なプロジェクトでした。その当時はJavaFXではなくForm Follows Function (F3)という名前でした。

 その後、SeeBeyondはSun Microsystemsに買収され、Oliver氏もSunに移籍しました。そして、F3もSun Microsystemsでのプロジェクトとなったのです。

 そして、2007年のJavaOneで、F3はJavaFXという新しい名前で発表されました。

 JavaOne後、OpenJFXプロジェクトが発足し、インタープリタ版JavaFXの提供を開始しています。しかし、インタープリタということもあり、処理速度はおせじにも優れているとはいえませんでした。

 そこで、コンパイラ版のJavaFXの開発が開始され、2008年7月にプレビューSDKが公開されています。

 JavaFX 1.0がリリースされたのが、2008年12月です。

 ところが、JavaFX 1.0とインタープリタ版、プレビューSDKとは文法やライブラリがかなり変更されており、いずれも互換性がありません。

 このため、JavaFX 1.0がリリースする前の書籍や記事はすべて使えなくなってしまいました。

 いまだに巷では古い情報があふれていますので、なるべく新しい情報を参照するようにしてください。

 JavaFX 1.0がリリースされてから1年、最近では徐々に事例も出てきています。たとえば、バンクーバーオリンピックのサイトで国別のメダル数を表示するページに採用されています。

 筆者も仕事でJavaFXを使用しています。筆者は研究職なのでプロダクトを作ることはないのですが、GUIのプロトタイプをさくっと作るにはとても役に立ちます。

 原稿執筆時点での最新版はJavaFX 1.2.3です。JavaFX 1.0が動作するのはWindowsとMacだけでしたが、現在はSolaris、Linux、Windows Mobileでもサポートされています。

 今年(2010年)の1月にはOracleがSun Microsystemsの買収後のロードマップを発表し、JavaFXも引き続きサポートされることが発表されました。

 現在はJavaFX 1.3のリリースに向けて、活発に開発が続けられています。

 では、さっそくJavaFXのプログラミングについて説明したいところですが、その前にJavaFXが登場した背景のようなものについて考えてみることにしましょう。