イベント・セットは、イベントのタイプ、イベントで伝える内容、イベントの生成とリスニングに必要な事項を定義します。イベント・セットは、次のもので構成されています。
イベント・リスナー・インタフェースでは、このタイプのイベントを受け取るクラスで実装が必要な1つ以上のメソッドを定義します。メソッドは通常1つ以上のパラメータ(イベント・オブジェクト)を受け取ります。
イベント・オブジェクトは、実際にソースからリスナーに渡されます。イベント・オブジェクトには、イベント・ソースの検索開始位置を含め、リスナーに関係する必要なすべてのパラメータが含まれています。イベントはすべてjava.util.EventObject
から導出されます。
add<Event>Listener
およびremove<Event>Listener
メソッド)により、コンポーネントでは、この特定のイベントに登録するすべてのコンポーネントを管理できます。
これらのメソッドは、パラメータ(イベントのリスニングに関係するオブジェクト)を1つ受け取ります。定義によりオブジェクトは<Event>Listener
インタフェースを実装する必要があります。
java.awt
パッケージには、フォーカス・イベント、マウス・イベント、マウス動作イベント、キー・イベントなど、いくつかの定義済イベント・セットが用意されています。これらのイベント・セットには、<Event>Listener
インタフェースおよびイベント・オブジェクトの両方が含まれています。
たとえば、キー・イベントについて考えます。キー・イベント・セットには、keyPressed()
、keyReleased()
およびkeyTyped()
メソッドを定義するKeyListener
インタフェースと、KeyEvent
クラスが含まれています。キー・イベントを生成するコンポーネントは、addKeyListener()
およびremoveKeyListener()
登録メソッドを定義する必要があります。
キー・イベントの例のネーミング・パターン規則に注意してください。Keyというイベント名は、リスナー・インタフェース、そのメソッド(オプション)、イベント・オブジェクトおよび登録メソッドにも使用されています。これと同じネーミング・パターンを、作成するすべてのイベント・セットに使用してください。
通常、キー・イベント・セットなどの定義済イベント・セットで、十分プログラミングは可能です。ただし、必要な場合は、独自のイベント・セットを作成できます。
コンポーネントでイベントを生成するには、イベント・セット、イベント・オブジェクトおよびイベント登録メソッドを定義し、登録対象の他のコンポーネントにイベントの起動を通知できるようにする必要があります。
標準のJavaイベントは、一連のJavaインタフェースにグループ化されています。これらのイベントには、たとえばKeyListener.java
などのように、ソース・ファイル名の一部にListenerという語が使用されます。これらのイベントはすべて、java.util.EventListener
を拡張します。Javaでは、イベント・リスナーをインタフェースとして定義するため、これらのイベントに応答を実装できます。次のコードは、KeyListener.java
ソース・ファイルのコードの一部です。
public interface KeyListener extends EventListener
{
void keyTyped(KeyEvent e); // a key is pressed and released
void keyPressed(KeyEvent e); // a key is pressed
void keyReleased(KeyEvent e); // a key is released
// end of code example
KeyListener
インタフェースでは、Javaコンポーネントでリスニングできるキーボード・イベントの全タイプが定義されています。インタフェース内には、キー・イベントのタイプごとに異なるメソッドがあります。たとえば、キーを押した際に発生するイベントのkeyPressed()
メソッド、キーを放した際に発生するイベントのkeyReleased()
メソッドがあります。