プログラミング応用b 第13回 『GUIその2 (AWT/Swingによるイベント処理)』


【コンポーネントの実装・継承関係】

 ここで,JavaにおけるGUIコンポーネントを表すクラスや各種インタフェイスの主な実装・継承関係をFig. 5に
紹介しておきます。スーパークラスが書かれていないクラスのスーパークラスはObjectです。

 Fig. 5 の右下に記載されている凡例にあるように,各クラスやインタフェイスの左下にある三角がグレイのもの
がAWT所属のもの,黒いものSwing所属のものです。あまり重要でないいくつかのクラス・インタフェイスおよび
実装・継承関係は省いていますが,APIの参照時などに役に立つでしょう。
(PDF版はこちら。印刷して手元に置いておくと,自分でプログラムを書くときに参考になるでしょう)



 Fig.5では,クラス・インタフェイスをいくつかのグループにわけています。このグループ
分けは便宜的なものですが,把握していると Fig.5 をより活用できるでしょう。

 まず,基幹コンポーネント部分が,Fig.5の上部にある①の部分です。すべてのコンポー
ネントのスーパークラスComponentがあり,そのサブクラスとして,すべてのコンテナの
スーパークラスであるContainerクラスがあります。そのサブクラスが,Swing系コンポー
ネントのスーパークラスJComponentです。この3つのクラスはその継承関係とともに
是非覚えておきましょう。特にSwing系コンポーネント一般を表すJComponentがContainer
のサブクラスと言うことは,Swing系コンポーネントは基本的に「他のコンポーネントを含む
事ができるContainer」の一種である,ということです。

 Fig.5-①のすぐ右下にある②が,Containerのサブクラス群としてのウィンドウ系コン
ポーネント群
です。まず,ContainerのサブクラスとしてWindowがあり,そのサブクラスと
して,Frame,Dialog,JWindowがあります。Swing系ウィンドウのJFrameとJDialogはそれ
ぞれ,FrameとDialogのサブクラスとなっています。JComponentクラスのサブクラスJInternalFrame
は,Windowのサブクラスではありませんが,ウィンドウの内部に作成される擬似的なウィン
ドウです。

 ウィンドウ系コンポーネントの左にあるFig.5-③が,アップレット・AWT系パネルコン
ポーネント群
です。AWT版のパネルであるPanelや,ScrollPane,ScrollaPaneAdjustableと
いうAWT版ペインのクラス,そして,古いバージョンのアップレットjava.applet.Applet
そのサブクラスとしてのSwing版アップレットのJAppletがあります。
 アップレットは,ウェブブラウザ上で実行できるアプリケーションの一形態で,読者の皆さ
んならご存じでしょう。ごらんのように,Applet,JAppletは,AWT版パネルであるPanelサ
ブクラスとして定義されているのです。

 そして,Fig.5-②のJWindow,JFrame,JDialog,JInternalFrame,Fig.5-③のJApplet
の5つのクラスは,Fig.5-②のRootPaneContainerインタフェイスを実装しています。
RootPaneContainerは,前回お話ししたSwing系のウィンドウが持っているコンテントペイン
を返すメソッドgetContentPane( )を定義しています。つまり,RootPaneContainerを実装し
ているこれら5つのクラスこそが,コンテントペインを持っているクラスであることになります。

 アップレット・AWT系パネルコンポーネント群の下のFig.5-④が,AWT系メニューコン
ポーネント群
です。さらにその下のFig.5-⑤が,AWT版の一般コンポーネント群です。だい
たい,以上でAWT系コンポーネントはすべてカバーできています。残りは全部Swing系コンポ
ーネントです。

 Fig.5の右側にあるのが,Swing系メニューコンポーネント群です。Fig.5の中央には,Swing
系ボタンコンポーネント群
(fig.5-⑦),とSwing系ペインコンポーネント群(Fig.5-⑧)があり
ます。Fig.5の中央やや下には,Swing系の一般コンポーネント群(Fig.5-⑨)があります。その
下には,Swing系コンボボックスコンポーネント群(Fig.5-⑩)があります。Fig.5の下端には,
Swing系テキストコンポーネント群(fig.5-⑪),Swing系テーブルコンポーネント群(fig.5-⑫)
があります。

 なお,Fig.5の左下にあるFig.5-⑬は,次節で説明するイベント関係のインタフェイス群
です。

次に進む