welcome: please sign in
location: "イベントドリブン"の差分
10と13のリビジョン間の差分 (その間の編集: 3回)
2009-12-04 01:50:07時点のリビジョン10
サイズ: 1662
編集者: masahiko
コメント:
2009-12-04 01:59:34時点のリビジョン13
サイズ: 2163
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 25: 行 25:
---- -----
行 29: 行 29:
作成するクラスはJPanelとmouseListenerの2つの親を持たなければなりません。 === クラスの定義 ===
作成するクラスはJPanelと!MouseListenerの2つの親を持たなければなりません。
行 32: 行 33:
 . Javaではスーパークラスとして指定できるのは1つだけです。
 . JPanelクラスを継承します
Javaではスーパークラスとして指定できるのは1つだけです。
 . JPanelクラスを継承することは次のように書きま
行 35: 行 36:
 . インターフェースはスーパークラスとしての指定ではなく実装の指定をします。
   . implements mouseListener
 . インターフェースは次のように実装の指定として書きます。
   . implements !MouseListener
 {{{
 public class Lesson11 extends JPanel implements MouseListener
 {
    ...
 }
 }}}
----
=== リスナの指定 ===
このインスタンスがイベントリスナとなることを指定します。

インスタンスが作成されたときに指定すればよいので、コンストラクタ内にaddMouseListenerを追加します。
 {{{
 Lesson11()
 {
    ...
    addMouseListener(this);
 }
 }}}
----
=== メソッドの記述 ===

イベントドリブン

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

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

  • event1.png

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


インターフェース

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

  • インターフェースは実体の無いクラスと考えられます。
  • インターフェースはクラス図では点線を使って表します。
  • interface.png

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

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


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

クラスの定義

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

  • event2.png

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

  • JPanelクラスを継承することは次のように書きました。
    • extends JPanel
  • インターフェースは次のように実装の指定として書きます。
    • implements MouseListener

     public class Lesson11 extends JPanel implements MouseListener
     {
        ...
     }


リスナの指定

このインスタンスがイベントリスナとなることを指定します。

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

  •  Lesson11()
     {
        ...
        addMouseListener(this);
     }


メソッドの記述

イベントドリブン (最終更新日時 2010-12-18 12:54:39 更新者 masahiko)