AWTEvent クラス

[内容]

  すべての AWT イベントに対するルートクラスです.マウスのクリック,画面のサイズの変更等,Window の各要素内で生じる事象をイベントと呼び,イベントは,イベントの種類毎に,クラスに分類されています.

  イベントが発生すると,イベントソースは対応するイベントを記述するイベントオブジェクトを生成します.これを,イベントリスナに送出して対応する処理を行うわけですが,そのためには,イベントリスナがそのイベントを「聞く」準備ができていなくてはなりません.その準備を行うのがイベント登録メソッド(イベント削除メソッドもあります)です.イベントの送出は,リスナのインタフェース(または,イベントアダプタ)に定義されているイベント応答メソッド(ハンドラメソッド)の内 1 つを呼び出し,引数としてイベントソースが生成したイベントオブジェクトを渡すといった方法で行われます.

  イベントリスナはインタフェースとして提供されています.これは,各イベントの処理がアプリケーションによって異なる場合が多いからです.しかし,インタフェースを実装する際には,インタフェースに定義されているすべてのメソッド(ハンドラメソッド)を実装しない限り,抽象クラスとなり,インスタンスを生成できなくなります.実際にすべてのメソッドを必要とする場合は問題ありませんが,一部のメソッドだけを使用したい場合は,必要としないメソッドまですべて定義しなければならず,余分な作業が必要になります.プログラム例は,イベントリスナを使用して,Window を閉じる場合の例です.

  イベントアダプタクラスを利用すれば,この煩わしさを避けることが可能です.イベントアダプタは,すべてのメソッドに対する標準的処理を実装しているため,このクラスのサブクラスとしてクラスを定義すれば,必要なメソッドの実装だけで済むことになります.しかし,Java においては多重継承が許されませので,内部クラスを定義してイベント処理を行うのが通常の方法です.プログラム例は,上と同じ例に対しイベントアダプタを使用して実行しています.

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引