サイズ: 1763
コメント:
|
サイズ: 2163
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 25: | 行 25: |
---- | ----- |
行 29: | 行 29: |
=== クラスの定義 === | |
行 43: | 行 44: |
---- === リスナの指定 === このインスタンスがイベントリスナとなることを指定します。 インスタンスが作成されたときに指定すればよいので、コンストラクタ内にaddMouseListenerを追加します。 {{{ Lesson11() { ... addMouseListener(this); } }}} ---- === メソッドの記述 === |
イベントドリブン
GUI用いたプログラムは複数のスレッドで動作しています。
ボタンを押すなどのアクションやイベントに対して処理が行われます。
イベントが発生するとその情報はイベントキューに入れられ、 イベントの内容に対応するイベントリスナに処理を委ねられます。
インターフェース
リスナを作成するにはインターフェースを利用します。
- インターフェースは実体の無いクラスと考えられます。
- インターフェースはクラス図では点線を使って表します。
インターフェースでは、どのようなメソッドが必要かなどインターフェースだけが指定されています。
インターフェースを継承してクラスを作成するときには、 インターフェースで指定されているメソッドをすべて記述しなければなりません。 これを実装といいます。
例
画像を表示するプログラムにマウスイベントを追加します。
クラスの定義
作成するクラスはJPanelとMouseListenerの2つの親を持たなければなりません。
Javaではスーパークラスとして指定できるのは1つだけです。
- JPanelクラスを継承することは次のように書きました。
- extends JPanel
- インターフェースは次のように実装の指定として書きます。
implements MouseListener
public class Lesson11 extends JPanel implements MouseListener { ... }
リスナの指定
このインスタンスがイベントリスナとなることを指定します。
インスタンスが作成されたときに指定すればよいので、コンストラクタ内にaddMouseListenerを追加します。
Lesson11() { ... addMouseListener(this); }