Event
Eventクラスは Objectクラスの直接のサブ・クラスです。
java.awtパッケージに含まれます。
Eventはイベント情報を記憶するためのクラスです。
Eventクラスの変数
Eventクラスにはイベントの種々の情報を記憶するため、
多数の publicな変数が用意されています。
イベントの種類ごとに以下の項目のようにグループ分けして解説します。
- Eventの情報を記憶する変数
- Eventの種類を表す定数
- 個々のキーを表す定数
- キーの修飾を表す定数
Eventの情報を記憶する変数
- public Object target
- public long when
- public int id
- public int x
- public int y
- public int key
- public int modifiers
- public int clickCount
- public Object arg
- public Event evt
イベントに関する情報は上記の 10個の変数に記憶されます。
targetはイベントが発生したオブジェクトです。
when はイベントのタイム・スタンプです(ミリ秒単位)。
id はイベントの種類を記憶するための変数です。イベントの種類の識別には
後述の定数値を利用します。
x および y はイベントが発生した座標です。
key はキーのコードです。(キーボード・イベントの場合のみ意味を持ちます。)
modifiers はキーの修飾状態を表す変数です。
各ビットに、シフト、コントロール、メタ、アルト・キーが押されているか
どうかを独立に記憶します。状態を取り出すには
後述のマスクの定数を利用するか、専用のメソッドを利用します。
(キーボード・イベント以外の処理でも利用されます。)
clickCount はマウスのクリックの回数を記憶します。
この値が2ならばダブル・クリックです。
マウス・クリック以外の場合は値は 0です。
arg は不定型のデータをイベントに渡す時に利用されます。
特別なオブジェクトをあらかじめ用意しておき、
Eventのオブジェクトを生成する時に引数として渡すことが可能です。
evt は別の Event のオブジェクトへのリンクを提供します。
イベントの系列をリスト構造として取り扱いたい場合に利用します。
arg と evt は Eventのオブジェクトに常に必要なデータというわけではありません。
Eventの種類を表す定数
- public final static int MOUSE_DOWN
- public final static int MOUSE_UP
- public final static int MOUSE_MOVE
- public final static int MOUSE_ENTER
- public final static int MOUSE_EXIT
- public final static int MOUSE_DRAG
- public final static int KEY_PRESS
- public final static int KEY_RELEASE
- public final static int KEY_ACTION
- public final static int KEY_ACTION_RELEASE
- public final static int GOT_FOCUS
- public final static int LOST_FOCUS
- public final static int ACTION_EVENT
- public final static int LIST_SELECT
- public final static int SCROLL_LINE_UP
- public final static int SCROLL_LINE_DOWN
- public final static int SCROLL_PAGE_UP
- public final static int SCROLL_PAGE_DOWN
- public final static int SCROLL_ABSOLUTE
- public final static int LOAD_FILE
- public final static int SAVE_FILE
- public final static int WINDOW_DESTROY
- public final static int WINDOW_EXPOSE
- public final static int WINDOW_ICONIFY
- public final static int WINDOW_DEICONIFY
- public final static int WINDOW_MOVED
イベントの種類は変数 id に記憶されます。
その値の識別には上に定義された定数を用います。
個々のキーを表す定数
- public final static int HOME
- public final static int END
- public final static int PGUP
- public final static int PGDN
- public final static int UP
- public final static int DOWN
- public final static int LEFT
- public final static int RIGHT
- public final static int F1
- public final static int F2
- public final static int F3
- public final static int F4
- public final static int F5
- public final static int F6
- public final static int F7
- public final static int F8
- public final static int F9
- public final static int F10
- public final static int F11
- public final static int F12
キーの情報は変数 key の値に記憶されますが、
キーボードのキーのうちのいくつかは、1バイトのコードには対応していません。
これらの定数は、そうした特殊キー用に定義されたものです。
カーソル移動やファンクション・キーの識別には、これらの定数を用います。
BackSpace や Escapeなどのキー、
あるいは Ctrl+C などの入力は対応するアスキー・コードの値で識別されます。
キーの修飾を表す定数
- public final static int SHIFT_MASK
- public final static int CTRL_MASK
- public final static int META_MASK
- public final static int ALT_MASK
これらの定数値は、変数 modifiers の値から
キーの修飾の状態を得るために用います。
Eventクラスのメソッド
Eventクラスには、
引数の区別もすると3個のコンストラクタと6個のメソッド定義されています。
メソッドの目的ごとに以下の項目のようにグループ分けして解説します。
- コンストラクタ
- キーの修飾に関するメソッド
- オブジェクト自身に関するメソッド
コンストラクタ
- public Event(Object target, long when, int id, int x, int y, int key, int modifiers)
- public Event(Object target, long when, int id, int x, int y, int key, int modifiers, Object arg)
- public Event(Object target, int id, Object arg)
通常のプログラムでは Eventのオブジェクトを内部で生成することはなく、
外部から与えられたものを利用する場合がほとんどです。
しかし特殊なケースとしてユーザーの操作を擬似的に再現したり、
与えられたイベント情報を元に新しいイベント情報を生成し、
それを他のオブジェクトに転送することはあり得ます。
そのような場合は上記のコンストラクタを利用します。
主要な変数の値は引数で指定することができます。
それぞれの意味は上述の変数の解説を参照してください。
キーの修飾に関するメソッド
- public boolean shiftDown()
- public boolean controlDown()
- public boolean metaDown()
これらのメソッドは、
イベント発生時にシフト・キー、コントロール・キー、メタ・キーの修飾キーが
押されていたかをチェックします。
これらのメソッドは、キーボード・イベントの処理の中では利用する必要はありません。
むしろマウス・イベントの処理の中で必要になります。
(シフト・キーを押しながらのドラッグの処理などのため)
オブジェクト自身に関するメソッド
- public void translate(int x, int y)
- protected String paramString()
- public String toString()
translate()メソッドはオブジェクトの座標の情報を相対移動します。
(原点を与えられた点に移動する。)
paramString()およびtoString()メソッドはイベントの
座標とキーに関する情報を Stringクラスのオブジェクトとして返します。
(デバッグの時に便利です。)