在这里,我只想在按下(=)按钮时将第一个数字添加到第二个数字。按下(=)按钮时,此代码仅显示屏幕上的第二个数字。一旦这个工作,我希望它使用不同的算术运算符按钮,例如(+ - * /)。如果你能找出我的代码,请帮忙。
私有类TheHandler实现了ActionListener {
public void actionPerformed(ActionEvent e) {
//add values to buttons
String num = "";
if(e.getSource()==btn[0]){
num = "7";
}else if(e.getSource()==btn[1]){
num = "8";
}else if(e.getSource()==btn[2]){
num = "9";
}else if(e.getSource()==btn[5]){
num = "4";
}else if(e.getSource()==btn[6]){
num = "5";
}else if(e.getSource()==btn[7]){
num = "6";
}else if(e.getSource()==btn[10]){
num = "1";
}else if(e.getSource()==btn[11]){
num = "2";
}else if(e.getSource()==btn[12]){
num = "3";
}else if(e.getSource()==btn[15]){
num = "0";
}
//set the values to the text field
if (tDisplay.getText().equals("0"))
tDisplay.setText(num);
else
tDisplay.setText(tDisplay.getText()+num);
//temporary values to be stored when arithmetic operators are pressed
double tempValue =0;
double tempValue2 =0;
double equalsTo=0;
//if = button is pressed
if(e.getSource()==btn[19]){
tempValue2 = Double.parseDouble(tDisplay.getText());
equalsTo = tempValue+tempValue2;
tDisplay.setText(String.valueOf(equalsTo));
}
//if + button is pressed
if(e.getSource()==btn[3]){
tempValue = Double.parseDouble(tDisplay.getText());
tDisplay.setText("");
}
}
}
答案 0 :(得分:1)
if(e.getSource()==btn[19]){
tempValue2 = Double.parseDouble(tDisplay.getText());
equalsTo = tempValue+tempValue2;
tDisplay.setText(String.valueOf(equalsTo));
}
正在做你告诉它的事情。
tempValue2仍为0,因为
double tempValue =0;
所以总和将始终为tempValue2
,因为tempValue2 + 0 == tempValue2
你为tempValue2
解析了一下,但你没有为tempValue
答案 1 :(得分:0)
看起来您已声明局部变量来存储中间结果,因此每次执行操作时这些变量都会重新初始化为0。相反,您可能希望它们是类属性,因此变量中的值可以“生存”多次调用actionPerformed方法。