イベントドリブン

イベントドリブン

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

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

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


インターフェース

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

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

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


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

クラスの定義

作成するクラスはJPanelとMouseListenerの2つの親を持たなければなりません。

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


リスナの指定

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

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


メソッドの記述

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

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

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


演習

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

例とは別のdrawImageメソッドを使って、画像の一部をウインドウ内の一部に表示しなさい。

paintComponent内で画像を表示するときに 表示位置をインスタンス変数px,pyで指定するように修正すれば動作します。

イベントドリブン (最終更新日時 2009-12-04 02:33:51 更新者 masahiko)