このブログを検索

2019年7月29日月曜日

Java入門教室 Chapter10「ボタンをクリックしたときに反応する」

「Java入門教室」

Chapter10「ボタンをクリックしたときに反応する」(Sample1004)
 ボタンをクリックした際に、「<<<ボタン1>>>」→「ボタン1をクリックした」
 とボタンのLabelの変更の処理。

 このボタンのLabelを 何回押したのか表示できるように 変更したい。
 やってみた。

⭐️Sample1004

import java.awt.*;
import java.awt.event.*;
class Main{
    public static void main(String[] args){
        MyWindow mw = new MyWindow();
    }
}

class MyWindow extends Frame implements ActionListener{
    Button btn1, btn2, btn3;
    static int btnH1 = 1;
    static int btnH2 = 1;
    static int btnH3 = 1;
    MyWindow(){
        setTitle("ボタンを判定する");
        setSize(300, 200);
        setLayout(new FlowLayout());
        btn1 = new Button("<<ボタン 1>>");
        btn1.addActionListener(this);
        add(btn1);
        btn2 = new Button("<<ボタン 2>>");
        btn2.addActionListener(this);
        add(btn2);
        btn3 = new Button("<<ボタン 3>>");
        btn3.addActionListener(this);
        add(btn3);
        setVisible(true);
        addWindowListener(new WinListener());
    }
    
    public void actionPerformed(ActionEvent e){
        if(e.getSource() == btn1){
            btn1.setLabel("ボタン1→ " + btnH1 + " 回");
            btnH1++;
        }
        if(e.getSource() == btn2){
            btn2.setLabel("ボタン2→ " + btnH2 + " 回");
            btnH2++;
        }
        if(e.getSource() == btn3){
            btn3.setLabel("ボタン3→ " + btnH3 + " 回");
            btnH3++;
        }
    }
}

class WinListener extends WindowAdapter{
    public void windowClosing(WindowEvent e){System.exit(0);}

}


↓手間取ったところ
 ボタンを何回クリックしたのか カウントする変数。
 btnH1、btnH2、btnH3の変数を クラス変数にしないと
 クリックした際の カウントが 常に初期化してしまう事。

今日の教訓
 とりあえず、やってみた。

0 件のコメント:

コメントを投稿