2つのパネル

2つのオブジェクトを作れば

2つのオブジェクトを作ればそれぞれ別々に動作します。ここがオブジェクト指向の楽珍なところです。

全く同じカウンタを2つ並べます。

ファイル名 TwoButtons2.java

/**
 *  2つのパネル
 */
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class TwoButtons2 extends JFrame{
	/* コンストラクタ */
	public TwoButtons2(){
		setSize(200, 150);                       //サイズと位置を指定
		setDefaultCloseOperation(EXIT_ON_CLOSE); //終了処理を追加
		MyJPanel panel01 = new MyJPanel();       //パネルをつくる
		MyJPanel panel02 = new MyJPanel();       //パネルをつくる
		Container cn = getContentPane();         //コンテナ取得
		cn.setLayout(new BorderLayout());
		cn.add(panel01, BorderLayout.EAST);      //パネルをコンテナに貼る
		cn.add(panel02, BorderLayout.WEST);      //パネルをコンテナに貼る
		setVisible(true);                        //実際に表示する
	}
	/********* main **********/
	public static void main(String[] args){
		/* フレームを作成(事実上のプログラム実行) */
		TwoButtons2 frame1 = new TwoButtons2();
	}
	/* パネルを作るクラス */
	public class MyJPanel extends JPanel implements ActionListener {
		JButton button1;
		JButton button2;
		JLabel label;
		int count = 0;
		/* コンストラクタ */
		public MyJPanel(){
			setBackground(new Color(240,255,255)); //パネル色
			button1 = new JButton("Click Me!");    //ボタン1
			button2 = new JButton("Clear");    //ボタン2
			label = new JLabel("clicks",JLabel.CENTER); //ラベル

			setLayout(new BorderLayout());     //レイアウトマネージャを指定
			add(label, BorderLayout.CENTER);   //ラベルを真ん中に
			add(button1, BorderLayout.SOUTH);   //ボタンを下に配置
			add(button2, BorderLayout.NORTH);   //ボタンを下に配置

			button1.addActionListener(this);
			button2.addActionListener(this);
		}

		/* イベントがあったらここに来る */
		public void actionPerformed(ActionEvent e) {
			if (e.getSource() == button1) {
				count++;
				label.setText(count + " clicks");
			}
			else if (e.getSource() == button2) {
				count = 0;
				label.setText(count + " clicks");
			}
		}
	}
}
もくじ

聖愛高等学校
http://www.seiai.ed.jp/
Last Modified