ロゴ

プログラミング初心者がアプリ開発を目指すブログ

Java Swing Eventモデルの導入 – Javaでデスクトップトップアプリ(予定&ToDo管理)を作る-018

今回からいよいよJava Swing イベントモデルを導入して、ボタン処理などを追加していきます。

Java SwingイベントモデルはGUIのボタンを押したのときの処理やマウスが動いたときの処理など
ユーザーの動きに対応して処理を行うGUIアプリには欠かせないものです。

イベントモデルの基本

GUIアプリのコンポーネント上では、マウス移動やクリック等の様々なイベントが常に発生しています。
このなかで処理したいイベントを受け取るようにするためには、リスナーと呼ばれるイベントを処理するクラスを用意する必要があります。

発生するイベントとイベントに対応するリスナーには例えば、以下のようなものがあります。
1.ボタンをクリックする、テキストフィールドで文字入力中にEnterキーを押す、メニューアイテムを選択する
⇒ActionListener
2.コンポーネントの上にマウスがある時にマウスを押す
⇒MouseListener
3.コンポーネントの上にマウスがある時にマウスを動かす
⇒MouseMotionListener
4.フレームを閉じる
⇒WindowListener
5.テーブル又はリストの選択項目を変更する
⇒ListSelectionListener

イベントリスナーの記述方法

それでは例として、ボタンにイベントリスナーを設置する方法を見ていきましょう。

1.リスナークラスを別に用意する方法
まずは、ボタンにaddActionListenerメソッドを実行してリスナーを作成します。
addActionListenerメソッドの引数にはイベントを処理するクラスを指定します。
今回はButtonListenerというクラスを指定しました。


public class yobidashi{
  JButton button = new JButton("Button");
  button.addActionListener(new ButtonListener());
}

ButtonListenerクラスを作っていきます。ActionListenerをインプリメントし、actionPerformedというメソッドを用意します。


public class ButtonListener implements ActionListener{
  public void actionPerformed(ActionEvent e){
    /* 処理内容 */
  }
}

実行したい処理をリスナーの中のメソッドの中に記述すれば処理を実行できます。

2.呼び出し元のクラスにリスナーを設置する方法
呼び出し元に直接リスナーを設置することもできます。
addActionListener(this)とします。


public class yobidashi implements ActionListener{
  JButton button = new JButton("Button");
  button.addActionListener(this);

  public void actionPerformed(ActionEvent e){
    /* 処理内容 */
  }
}

3.無名クラスを利用する方法
コンポーネントにリスナーを登録する際に合わせて無名クラスを定義していきます。
このようにすることで、コンポーネント単位で処理内容を記述することになります。


public class yobidashi{
  JButton button = new JButton("Button");
  button.addActionListener(
    new ActionListener(){
      public void actionPerformed(ActionEvent e){
        /* 処理内容 */
      }
    }
  );
}

リスナーの記述方法は以上です。
次回、ActionListenerのメソッドを見ていきましょう。

アプリ開発記の次の記事はこちら => Java Swing ActionEvent – Javaでデスクトップトップアプリ(予定&ToDo管理)を作る-019

スポンサード リンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA