プログラミング応用b 第11回 『GUIその1 (AWT/Swingによるウィンドウのデザインと生成)』

【JavaとGUI】

 私たちが日常的に使用しているソフトウェアの多くは,ウィンドウを持ち,その中にボ
タンやメニューなどがついています。そのボタンをマウスのポインタでクリックする(つま
り"ボタンを押す")などして,インタラクティブにソフトウェアを動作させていきます。

 このようなウィンドウやボタン,マウスによるクリックといったグラフィカルなユーザイ
ンタフェイスを,グラフィカル・ユーザ・インタフェイス(Graphical User Interface),略
してGUIと呼びます。

 多くのプログラミング言語は,言語としての規格が定められています。しかし,そうし
た正式の規格の中にGUIの機能を含んでいるプログラミング言語は少数派です。たとえば,
C言語,C++,Fortranといった言語には,GUIに関する規格は含まれていません。これは,
GUIの機能自体が,プラットフォームに強く依存してしまうため,ということが大きな理
由の一つです。

 しかし,Javaはプラットフォームに依存しない言語として設計されており,GUI機能も
またプラットフォームに依存しない形で,標準のクラスライブラリに含まれているのです。

 JavaのGUI機能は比較的簡単に利用することができますし,なによりプラットフォーム
に依存せずにGUIつきのソフトウェアを開発できることは大きな利点です。


【AWTとSwing】

 Javaには最初のバージョン(JDK 1.0)からGUI機能が用意されていました。それが,AWT
(Abstract Window Toolkit)
です。AWTは,java.awtパッケージとしてまとめられています。

 しかし,AWTで用意されたGUI機能は,それほど高機能ではなく,効率が悪かった部分も
ありました。そこで,JDK 1.2 (いわゆるJava 2)にバージョンアップしたとき,Swingとい
う高機能で効率的なGUIクラスライブラリが導入されました。Swingは,javax.swingという
標準パッケージとして用意されています。

 しかし,SwingはAWTを完全に置き換えるものではありません。SwingはAWTの中核部分
を利用しながら,AWTの一部の機能に対してより改良された代替機能を提供し,また新たな
新機能を追加するものです
。つまり,AWTはSwingが導入された現在も残されており,AWT
とSwingは共存する形になっています
。AWTとSwingを合わせて,JFC(Java Foundation
Class)
と呼びます。

 Swing自体がAWTの機能を利用しているので,AWTの機能をまったく使わずにSwingの機
能だけでGUIソフトウェアを作成することは難しいですし,逆にAWTだけでGUIソフトウェア
を作成すると,ソフトウェアの実行効率が悪くなるだけでなく,高機能なGUI機能を享受する
ことができなくなります。

 ですから,JavaのGUI機能を学習するときは,AWTとSwingの両方の基礎を学ばなければ
なりません。そして実際にGUI機能を使うときには,AWTを使わざるを得ない部分はしかた
ないとして,Swingに代替機能があればできるだけSwingの機能を使うべきでしょう。


次へ進む