📄 buttoneventhandler.java
字号:
package guiComponentPackage;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ButtonEventHandler implements ActionListener{
public Buffer buffer;
public Label lab;
public void actionPerformed(ActionEvent e) {
String str=e.getActionCommand();
if(str.equals("+")){
buffer.op=1; //表示加法
buffer.isNumber=false; //表示不是数字
buffer.isBegin=true; //表示开始输入新数
if(buffer.isFirst==true) {
buffer.result=Double.parseDouble(lab.getText());// 获得第一个数存储在buffer.result
buffer.isFirst=false; //表示以后获得数不是第一个数
}
else {
buffer.result1=Double.parseDouble(lab.getText());// 获得第二个数存储在buffer.result1
buffer.result+=buffer.result1; //按第二次“+”后,两个数做加法运算
}
lab.setText(Double.toString(buffer.result));
}
if(str.equals("-")){
buffer.op=2;
buffer.isNumber=false;
buffer.isBegin=true;
if(buffer.isFirst==true) {
buffer.result=Double.parseDouble(lab.getText());
buffer.isFirst=false;
}
else {
buffer.result1=Double.parseDouble(lab.getText());
buffer.result-=buffer.result1;
}
lab.setText(Double.toString(buffer.result));
}
if(str.equals("*")){
buffer.op=3;
buffer.isNumber=false;
buffer.isBegin=true;
if(buffer.isFirst==true) {
buffer.result=Double.parseDouble(lab.getText());
buffer.isFirst=false;
}
else {
buffer.result1=Double.parseDouble(lab.getText());
buffer.result*=buffer.result1;
}
lab.setText(Double.toString(buffer.result));
}
if(str.equals("/")){
buffer.op=4;
buffer.isNumber=false;
buffer.isBegin=true;
if(buffer.isFirst==true) {
buffer.result=Double.parseDouble(lab.getText());
buffer.isFirst=false;
}
else {
buffer.result1=Double.parseDouble(lab.getText());
buffer.result/=buffer.result1;
}
lab.setText(Double.toString(buffer.result));
}
if(str.equals("=")){
buffer.isNumber=false;
buffer.isBegin=true;
buffer.isFirst=true; //按“=”后获得的计算结果,肯定是下一步计算的第一个数。
buffer.result1=Double.parseDouble(lab.getText());// 获得第二个数存储在buffer.result1
switch (buffer.op) {
case 1:
buffer.result+=buffer.result1;
break;
case 2:
buffer.result-=buffer.result1;
break;
case 3:
buffer.result*=buffer.result1;
break;
case 4:
buffer.result/=buffer.result1;
break;
default:
break;
}
lab.setText(Double.toString(buffer.result));
}
if(str.equals("CE")){
buffer.isNumber=false;
buffer.isBegin=true;
buffer.result1=Double.parseDouble(lab.getText());
buffer.result =0.0;
lab.setText(Double.toString(buffer.result));
}
if(buffer.isNumber==true) {
if(buffer.isBegin==true) {
buffer.resultBuffer=new StringBuffer(str);
buffer.isBegin=false;
}
else {
buffer.resultBuffer.append(str);
}
lab.setText(buffer.resultBuffer.toString());
}
buffer.isNumber=true;
}
ButtonEventHandler(Buffer buffer,Label lab) { //构造器
super();
this.buffer = buffer;
this.lab=lab;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -