出題編9
「イベント処理」
 
← 前  :  次 →

問1
以下に,ボタンを1つ保持しているウィンドウを表示するプログラムを示します.

「MyFrame.java」

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

public class MyFrame extends JFrame {
	private JPanel routePanel;
	private int counter;
	protected JButton countButton;

	public MyFrame() {
		// 各種ウィンドウ設定
		setLocation(50,25);
		setSize(240,180);
		setResizable(true);
		setTitle("Sample program.");
		getContentPane().setLayout(new BorderLayout());
		setBackground(SystemColor.menu);
		setForeground(SystemColor.menuText);
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		// メイン・パネルの設定と追加
		setRoutePanel();
		getContentPane().add(routePanel,BorderLayout.CENTER);
	}

	private void setRoutePanel() {
		routePanel=new JPanel(new BorderLayout());

		// 初期化
		counter=0;
		countButton=new JButton(""+counter);
		routePanel.add(countButton,BorderLayout.CENTER);
	}

	public int getCountNumber() {
		return counter;
	}

	public void setCountNumber(int num) {
		counter=num;
	}

	public static void main(String[] args) {
		MyFrame f;

		f=new MyFrame();
		// メイン・ウィンドウの表示
		f.setVisible(true);
	}
}

プログラムを実行すると,「0」と表記されたボタンが確認できます. ただし,そのボタンは押しても何の反応も返しません.

このボタンに対して,イベント処理を追加してみてください.具体的には 「ボタンを押したときに,表示されている数値がカウント・アップする」 ようにプログラムを改造(できれば継承して新しいクラスを作成)してください.


表紙へ戻る