簡単なイベント

last modified: Jun./30th/2002; Jan./22nd/2002

GUI の作成

まずは GUI から作ります。フレームにパネルを配置し、パネルにボタンとラベルを追加します。ボタンを押すと、イベントが発生し、ラベルを書き換えるようにしたいのです。ボタンクリックのイベントを拾うので ActionListener を実装するのですが、まずはイベントを実装しないで、見栄えだけ作ることにします。

EventDemo.java:

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

class EventDemo {
	public static void main(String[] args) {
		JFrame frame = new JFrame("Event Demo");
		JPanel panel = new JPanel();
		JButton button = new JButton("Click Me!");
		JLabel label = new JLabel("clicks");

		panel.setLayout(new BorderLayout());
		panel.add(button, BorderLayout.NORTH);
		panel.add(label, BorderLayout.CENTER);

		Container cont = frame.getContentPane();
		cont.add(panel);

		//Frame のセットアップ
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);
	}
}

実行例:

C:\java>javac EventDemo.java

C:\java>java EventDemo

EventDemo の実行例
図:EventDemo の実行例

イベント処理の追加

これにイベントを取得するロジックを実装し、ボタンを押すとラベルの文字列が変化するようにします。

EventDemo.java:

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

class EventDemo {
	public static void main(String[] args) {
		JFrame frame = new JFrame("Event Demo");
		MyPanel panel = new MyPanel();

		Container cont = frame.getContentPane();
		cont.add(panel);

		//Frame のセットアップ
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);
	}
}

class MyPanel extends JPanel implements ActionListener {
	JButton button;
	JLabel label;
	int i = 0;

	MyPanel() {
		button = new JButton("Click Me!");
		label = new JLabel("clicks");

		this.setLayout(new BorderLayout());
		this.add(button, BorderLayout.NORTH);
		this.add(label, BorderLayout.CENTER);

		// 自分自身にイベントを投げる
		button.addActionListener(this);
	}

	// イベント・リスナー
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == button) {
			i++;
			label.setText(i + " clicks");
		}
	}
}

実行例:

C:\java>javac EventDemo.java

C:\java>java EventDemo

EventDemoのイベント実装結果
図:EventDemo のイベント実装結果


Copyright © 2001-2002 SUGAI, Manabu. All Rights Reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送