【Java練習記<3>】Swingの基本(3)

はじめに

ボタンを押したら、テキストが変わるプログラム。こちらからの操作に対して反応してくれる初めてのサンプル。

これを応用すれば、ボタンを押すと音が鳴ったりするプログラムが作れるわけか。ちょっと楽しくなってきた。

サンプルコード

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Sample extends JApplet {
  private JButton bt;
  private JLabel lb;

  public void init() {
    bt = new JButton("購入");
    lb = new JLabel("いらっしゃいませ");

    add(bt, BorderLayout.NORTH);
    add(lb, BorderLayout.SOUTH);

    bt.addActionListener(new SampleActionListener());
  }

  class SampleActionListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      lb.setText("ご購入ありがとうございます。");
    }
  }
}

分かったこと

  • イベント、ソース(イベントソース)、リスナ

    […]ユーザーの操作を、イベント(event)という概念で扱うことになっています。[…]
    イベントの発生元となるコンポーネントは、イベントソース(event source)、またはソース(source)と呼ばれています。[…]
    発生したイベントは、リスナ(listener)と呼ばれる部分で処理することになります。
    (『やさしいJava活用編(第4版)』、ソフトバンククリエイティブ、2013年、40-41頁。)

  • ActionListenerインターフェイス
  • addActionListener()メソッドで、アクションリスナーを追加することができ、actionPerformed()メソッドで、アクションが発生したときの処理を始めることができる。addActionListener()メソッドは、ボタン以外でも使えるものがある。
  • リスナは、インターフェイスとメソッドの両方が無いといけないんだろうな。

疑問点

  • 「actionPerformed(ActionEvent e)」の「ActionEvent e」は、とりあえず書いておけばいいのかな。