JavFXアプリケーションの基本コード (1/6)
作成:2014-11-15 09:43
更新:2014-11-15 09:43
更新:2014-11-15 09:43
■JavaFXってなに?
長らく待たされたJava8が登場してしばらく経過しますが、既にみなさんはこの新しいバージョンに慣れてきたでしょうか。Java8では、さまざまな新機能が追加されていますが、中でもJava界に激震が走った改革といえば「SwingからJavaFXへの移行」でしょう。
これまで、Javaでデスクトップアプリケーションを開発する際、GUIライブラリとして利用されてきたのは「AWT」と「Swing」でした。といっても、AWTはGUIの基本として用意されているだけで、実際に活用されていたのはそれをベースに構築されたSwingだった、といってよいでしょう。Swingは長らくJavaの標準GUIとして広く使われてきました。
が、Java8になって、新しい「JavaFX」が標準装備され、SwingからJavaFXへの切り替えが確定しました。もちろん、当面はSwingも共存しますのですぐになくなることはありませんが、いずれSwingが廃止されJavaFXに一本化するのはほぼ決まりのようです。(これは現在、Javaの開発を手がけるオラクルのWebサイトに明記されています。http://www.oracle.com/technetwork/jp/java/javafx/overview/faq-1446554-ja.html#6 「JavaFXはJava SE向けの新しいクライアントUIライブラリとしてSwingに取って代わりますか」)
では、このJavaFXというのはどういうものなのでしょうか。
長らくSwingを利用してきた人の多くは、「どうせAWTやSwingをベースにして改良したものだろう? 少し調べればすぐ使えるようになるさ」と思っている人も多いかもしれません。Swingが登場したとき、内容的には一新されてはいても、イベントシステムやグラフィックの描画システムなど基本的な構造はAWTをそのまま踏襲していたため、それほどの混乱は起こらなかったように思えます。もちろん、新しいGUIが大量に追加されましたからAWTとは全く違うものになっていましたが、それでも「根本の概念から理解し直す」という必要はありませんでした。Swingは「改革」であり、「革命」ではなかったのです。
が、JavaFXは違います。これは「革命」なのです。従来のAWT/Swingの概念はまるで通用しません。ButtonやTextFieldといった懐かしいクラス名はそのまま受け継がれていますが、それらが組み込まれるのはStageなんて見たこともないクラスだったりします(そもそもButtonもTextFieldも実際にはXMLのコードで記述したりします)。まずはFrameクラスを継承? しません(そんなクラスないし)。イベントリスナーでイベント処理? そんなもん使いません(あるけど)。paintメソッドとGraphcsでグラフィック描画? そんなメソッドもクラスもないです。
ほらね? それまで「JavaによるGUI利用」の根本だったものが次々と否定されて、「えっ? えっ? じゃあ一体、どうすんのよ?」と不安にかられてくるでしょう?
JavaFXは、AWT/Swingの基本的なGUIシステムとはまるで違う、全く別の体系なのです。その点をしっかり頭にいれておいてください。
これまで、Javaでデスクトップアプリケーションを開発する際、GUIライブラリとして利用されてきたのは「AWT」と「Swing」でした。といっても、AWTはGUIの基本として用意されているだけで、実際に活用されていたのはそれをベースに構築されたSwingだった、といってよいでしょう。Swingは長らくJavaの標準GUIとして広く使われてきました。
が、Java8になって、新しい「JavaFX」が標準装備され、SwingからJavaFXへの切り替えが確定しました。もちろん、当面はSwingも共存しますのですぐになくなることはありませんが、いずれSwingが廃止されJavaFXに一本化するのはほぼ決まりのようです。(これは現在、Javaの開発を手がけるオラクルのWebサイトに明記されています。http://www.oracle.com/technetwork/jp/java/javafx/overview/faq-1446554-ja.html#6 「JavaFXはJava SE向けの新しいクライアントUIライブラリとしてSwingに取って代わりますか」)
では、このJavaFXというのはどういうものなのでしょうか。
長らくSwingを利用してきた人の多くは、「どうせAWTやSwingをベースにして改良したものだろう? 少し調べればすぐ使えるようになるさ」と思っている人も多いかもしれません。Swingが登場したとき、内容的には一新されてはいても、イベントシステムやグラフィックの描画システムなど基本的な構造はAWTをそのまま踏襲していたため、それほどの混乱は起こらなかったように思えます。もちろん、新しいGUIが大量に追加されましたからAWTとは全く違うものになっていましたが、それでも「根本の概念から理解し直す」という必要はありませんでした。Swingは「改革」であり、「革命」ではなかったのです。
が、JavaFXは違います。これは「革命」なのです。従来のAWT/Swingの概念はまるで通用しません。ButtonやTextFieldといった懐かしいクラス名はそのまま受け継がれていますが、それらが組み込まれるのはStageなんて見たこともないクラスだったりします(そもそもButtonもTextFieldも実際にはXMLのコードで記述したりします)。まずはFrameクラスを継承? しません(そんなクラスないし)。イベントリスナーでイベント処理? そんなもん使いません(あるけど)。paintメソッドとGraphcsでグラフィック描画? そんなメソッドもクラスもないです。
ほらね? それまで「JavaによるGUI利用」の根本だったものが次々と否定されて、「えっ? えっ? じゃあ一体、どうすんのよ?」と不安にかられてくるでしょう?
JavaFXは、AWT/Swingの基本的なGUIシステムとはまるで違う、全く別の体系なのです。その点をしっかり頭にいれておいてください。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ