1

イベントドリブン

GUI用いたプログラムは複数のスレッドで動作しています。

ボタンを押すなどのアクションやイベントに対して処理が行われます。

イベントが発生するとその情報はイベントキューに入れられ、 イベントの内容に対応するイベントリスナに処理を委ねられます。


インターフェース

リスナを作成するにはインターフェースを利用します。

インターフェースでは、どのようなメソッドが必要かなどインターフェースだけが指定されています。

インターフェースを継承してクラスを作成するときには、 インターフェースで指定されているメソッドをすべて記述しなければなりません。 これを実装といいます。


画像を表示するプログラムにマウスイベントを追加します。

クラスの定義

作成するクラスでは利用したい機能がJPanelとMouseListenerの2つのクラスにあります。

Javaではスーパークラスとして指定できるのは1つだけです。


リスナの指定

このインスタンスがマウスイベントのリスナとなることを指定するために次のように記述します。

インスタンスが作成されたときに一度指定すればよいので、コンストラクタ内に記述します。


メソッドの記述

MouseListenerを実装するときには次の5つのメソッドを記述しなければなりません。

対応する処理が不必要な場合は本体が空のメソッドとして定義します。

引数や型は後ろのサンプルを見て下さい。


演習(続き)

drawImageメソッドを使って画像の一部をウインドウ内の一部に表示しましたが、 表示位置を変数px,pyで指定するように修正しなさい。

そのためにpx,pyをインスタンス変数として宣言し、初期化しておきます。

mousePressedメソッドの本体に2行追加します。

以上でマウスのボタンを押したら画像の表示位置が右に5ドットずつずれるようになります。

もとの位置にも画像が残ってしまいますが、このままでかまいません。