簡易電卓が作れない…
簡易電卓を作ろうとしているのですが、どうしても分からない所があります。
とりあえずテストの為、以下のようなプログラムを作りました。
「dentaku.java」
import java.awt.*;
import java.awt.event.*;
class dentaku{
public static void main(String[] agrs){
Frame frame=new Frame("電卓");
frame.setSize(500,800);
frame.setLayout(null);
Button button0=new Button("0");
button0.setLocation(10,710);
button0.setSize(80,80);
Button buttonC=new Button("C");
buttonC.setLocation(100,710);
buttonC.setSize(80,80);
Button button1=new Button("1");
button1.setLocation(10,620);
button1.setSize(80,80);
Button button2=new Button("2");
button2.setLocation(100,620);
button2.setSize(80,80);
Button button3=new Button("3");
button3.setLocation(190,620);
button3.setSize(80,80);
Button button4=new Button("4");
button4.setLocation(10,530);
button4.setSize(80,80);
Button button5=new Button("5");
button5.setLocation(100,530);
button5.setSize(80,80);
Button button6=new Button("6");
button6.setLocation(190,530);
button6.setSize(80,80);
Button button7=new Button("7");
button7.setLocation(10,440);
button7.setSize(80,80);
Button button8=new Button("8");
button8.setLocation(100,440);
button8.setSize(80,80);
Button button9=new Button("9");
button9.setLocation(190,440);
button9.setSize(80,80);
Button buttonP=new Button("+");
buttonP.setLocation(280,440);
buttonP.setSize(80,80);
Button buttonM=new Button("-");
buttonM.setLocation(280,530);
buttonM.setSize(80,80);
Button buttonK=new Button("×");
buttonK.setLocation(280,620);
buttonK.setSize(80,80);
Button buttonW=new Button("÷");
buttonW.setLocation(280,710);
buttonW.setSize(80,80);
TextField nyuuryoku = new TextField("");
nyuuryoku.setLocation(10,380);
nyuuryoku.setSize(350,50);
TextField kekka = new TextField("0");
kekka.setLocation(10,320);
kekka.setSize(350,50);
button1.addActionListener(new dentaku_num(nyuuryoku));
button2.addActionListener(new dentaku_num(nyuuryoku));
frame.add(button0);
frame.add(buttonC);
frame.add(button1);
frame.add(button2);
frame.add(button3);
frame.add(button4);
frame.add(button5);
frame.add(button6);
frame.add(button7);
frame.add(button8);
frame.add(button9);
frame.add(buttonP);
frame.add(buttonM);
frame.add(buttonK);
frame.add(buttonW);
frame.add(nyuuryoku);
frame.add(kekka);
frame.setVisible(true);
}
}
「dentaku_num.java」
import java.awt.*;
import java.awt.event.*;
class dentaku_num implements ActionListener{
TextField txt;
int num=0;
Button button1;
Button button2;
dentaku_num(TextField txt){
this.txt = txt;
}
public void actionPerformed(ActionEvent e){
if(e.getSource()== button1) {num=1;}
if(e.getSource()== button2) {num=2;}
txt.setText(String.valueOf(num));
}
}
予想では、「1」を押したら下のテクストボックスに1が、「2」を押したら2が表示されると思いました。
しかし結果は、両方とも「0」が表示されるだけです。
不思議に思い、「if(e.getSorce)~」の2文を消してみたら、これも同じ結果でした。
どうやら、eを受け取っていない(?)ようなのですが、どの様にしたらうまく行くでしょうか。
見づらい分だとは思いますが、宜しくお願いします。