!! イベントとリスナー 75ページからのコンポーネントの節では、ボタンやテキストフィールド、チョイス、スクロールバーなど、ユーザからの操作を受け付けるコンポーネントを紹介しました。しかし「ユーザがそれらを操作したときにどう反応するか」についての方法には触れませんでした。 この節では、ユーザがコンポーネントを操作したときに発生するイベントを受け取り、適切な処理を行うための方法を紹介します。 ! イベント 本書で扱うイベント(Event)は、ユーザが何らかの操作をしたときに発生するものです。例えばユーザが「ボタンを押した」、「スクロールバーの位置を変化させた」、「テキストフィールドに値を入力した」、「チョイスの項目を選択した」などのとき、イベントが発生します。他にもマウスが移動した、右クリックした、左クリックしたなどでもイベントが発生しますし、キーボードで文字が入力された場合などにもイベントが発生します。 我々はそれらの発生したイベントを捕まえてやり、決められた処理をしてやることで、ユーザの操作に対して適切な反応を返します。 ! リスナー どうやって発生したイベントを捕まえるかというと、リスナー(Listener)と呼ばれる仕組みを使います。各イベントにはそれを受け取るためのリスナーが用意されています。例えば、ボタンが押されたときにはActionEvent というイベントが発生します。ActionEvent を受け取るためのリスナーは ActionEventListener といった具合です。 リスナーは「インターフェース」(interface)と呼ばれる、クラスとはすこし異なったものです。クラスは一つしか継承することができませんが、インターフェースは複数個を実装することができます。我々は既にアプレットを作るために Applet クラスを継承しています。したがって、その他の機能も追加したい場合にはインタフェースという仕組みを使ってやることになります。インタフェースには、それを実装したクラスがオーバーライドすべきメソッドが書かれています。つまり、インタフェースを実装すると、そのインタフェースに書かれているメソッドを必ず定義してやらなければなりません。 クラスやインタフェースの細かい解説については、Javaの入門書に譲ることにします。