如有帮助,欢迎下载。
用JAVA编写计算器程序(模拟Windows计算器)
import java.awt.*; import java.awt.event.*;
public class Calculation extends WindowAdapter implements ActionListener {
double dResult=0; double dNowInput=0; double dMemory; int n=0; //记载小数位数
int nOperation=1; // 记录运算符类型 int nBitsNum=0; //记录总共输入的位数
boolean alreadyHaveDot=false; //已经有小数点? boolean keyAvailable=true;
boolean alreadyClickedEqueal=false; //是否按下过\
boolean isTempNowInput=false; //是否在计算出结果后直接按运算符将结果赋给了当前输入值? Frame f;
Panel p1,p2,p3,p4,p5,p6; TextField tf1,tf2;
Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0;
Button bDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative; Button bBackspace,bCE,bC,bMR,bMS,bMC,bM;
public void display() {
f=new Frame(\计算器\ f.setSize(280,213);
1
如有帮助,欢迎下载。
f.setLocation(200,200);
f.setBackground(Color.LIGHT_GRAY); f.setResizable(false);
f.setLayout(new BorderLayout(3,3));
p1=new Panel(new GridLayout(1,3,5,5)); //用于存放backspace,ce,c三键
p2=new Panel(new GridLayout(4,5,5,5)); //用于存放数字区及附近共20键, 此处间隙设置可能不合理,以后调整
p3=new Panel(new GridLayout(5,1,5,5)); //用于存放MC,MR,MS,M+键及显示M状态文本框,此处间隙设置可能不合理,以后调整
p4=new Panel(new FlowLayout()); //用于存放p1,p2 p5=new Panel(new FlowLayout()); p6=new Panel(new FlowLayout()); p4.add(p1); p4.add(p2);
tf1=new TextField(35); //存放显示区 tf1.setText(\ tf1.setEditable(false); p5.add(tf1);
f.add(p5,BorderLayout.NORTH); f.add(p4,BorderLayout.CENTER); f.add(p3,BorderLayout.WEST);
b1=new Button(\ b2=new Button(\ b3=new Button(\ b4=new Button(\ b5=new Button(\
2
b6=new Button(\ b7=new Button(\ b8=new Button(\ b9=new Button(\ b0=new Button(\
b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this); b0.addActionListener(this);
bDiv=new Button(\ bSqrt=new Button(\ bMulti=new Button(\ bMinus=new Button(\ bPercent=new Button(\ bPlus=new Button(\ bReciprocal=new Button(\ bEqual=new Button(\ bDot=new Button(\ bNegative=new Button(\
bDiv.addActionListener(this); bSqrt.addActionListener(this);
如有帮助,欢迎下载。
3
bMulti.addActionListener(this); bMinus.addActionListener(this); bPercent.addActionListener(this); bPlus.addActionListener(this); bReciprocal.addActionListener(this); bEqual.addActionListener(this); bDot.addActionListener(this); bNegative.addActionListener(this);
p2.add(b7); p2.add(b8); p2.add(b9); p2.add(bDiv); p2.add(bSqrt); p2.add(b4); p2.add(b5); p2.add(b6); p2.add(bMulti); p2.add(bPercent); p2.add(b1); p2.add(b2); p2.add(b3); p2.add(bMinus); p2.add(bReciprocal); p2.add(b0); p2.add(bNegative); p2.add(bDot); p2.add(bPlus); p2.add(bEqual);
如有帮助,欢迎下载。
4
如有帮助,欢迎下载。
bBackspace=new Button(\ bCE=new Button(\ bC=new Button(\
bBackspace.addActionListener(this); bCE.addActionListener(this); bC.addActionListener(this);
p1.add(bBackspace); p1.add(bCE); p1.add(bC);
tf2=new TextField(2); tf2.setEnabled(false);
tf2.setBackground(Color.LIGHT_GRAY); bMC=new Button(\ bMR=new Button(\ bMS=new Button(\ bM=new Button(\
bMC.addActionListener(this); bMR.addActionListener(this); bMS.addActionListener(this); bM.addActionListener(this);
p6.add(tf2); p3.add(p6); p3.add(bMC); p3.add(bMR); p3.add(bMS);
5