欢迎来到天天文库
浏览记录
ID:23137358
大小:65.18 KB
页数:5页
时间:2018-11-04
《java编写的计算器》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassCalculatorextendsJFrameimplementsActionListener{privateJTextFieldtext;//显示计算结果的文本行privatecharop;//当前运算符privatedoublevalue;//当前计算结果值privatebooleanfirst;//表示是否为数值的第1个数字privatebooleancal;//是否为连续运算booleanclickable;/
2、/控制运算符是否可用booleanisTrue;//控制数字键是否可用intsign;//标志是什么原因导致异常publicCalculator(){//TODOAuto-generatedconstructorstubsuper("计算器");this.setSize(280,210);this.setLocation(300,240);this.setDefaultCloseOperation(EXIT_ON_CLOSE);text=newJTextField("0.",30);text.setHorizontalAlignment(JTextField
3、.RIGHT);//设置对齐方式,右对齐text.setEditable(false);//只能显示,不允许编辑this.getContentPane().add(text,"North");JPanelpanel=newJPanel(newGridLayout(5,4,5,5));//面板采用网格布局this.getContentPane().add(panel);Stringstr[]={"sqrt","+/-","Backspace","C","7","8","9","/","4","5","6","*","1","2","3","-","0","."
4、,"=","+"};JButtonbuttons[]=newJButton[str.length];for(inti=0;i5、display()//将多个按钮中涉及到连续运算的相同的代码部分提出来单独作为一个方法{switch(op)//当按下第二个运算符时,进行前一个运算符的运算{case'+':value+=Double.parseDouble(text.getText());break;//转换成浮点数后运算case'-':value-=Double.parseDouble(text.getText());break;case'*':value*=Double.parseDouble(text.getText());break;case'/':if(Double.parseD6、ouble(text.getText())==0){this.sign=1;clickable=false;isTrue=false;thrownewArithmeticException();}elsevalue/=Double.parseDouble(text.getText());break;}}publicvoidactionPerformed(ActionEvente)//按钮单击的事件处理方法{Stringcurrent=e.getActionCommand();//获取按钮标签try{if(current=="C")//清除{text.setT7、ext("0.");//重新设置文本内容value=0.0d;first=true;cal=false;//取消连续运算标记clickable=false;//设置运算符此时不可用isTrue=true;return;}if(current=="Backspace"&&clickable==true)//退格{StringBufferstr1=newStringBuffer(text.getText());if(!text.getText().trim().equals("0.")){//如果文本框显示的不是零if(str1.length()!=1){tex8、t.setText(str1.delete(str1
5、display()//将多个按钮中涉及到连续运算的相同的代码部分提出来单独作为一个方法{switch(op)//当按下第二个运算符时,进行前一个运算符的运算{case'+':value+=Double.parseDouble(text.getText());break;//转换成浮点数后运算case'-':value-=Double.parseDouble(text.getText());break;case'*':value*=Double.parseDouble(text.getText());break;case'/':if(Double.parseD
6、ouble(text.getText())==0){this.sign=1;clickable=false;isTrue=false;thrownewArithmeticException();}elsevalue/=Double.parseDouble(text.getText());break;}}publicvoidactionPerformed(ActionEvente)//按钮单击的事件处理方法{Stringcurrent=e.getActionCommand();//获取按钮标签try{if(current=="C")//清除{text.setT
7、ext("0.");//重新设置文本内容value=0.0d;first=true;cal=false;//取消连续运算标记clickable=false;//设置运算符此时不可用isTrue=true;return;}if(current=="Backspace"&&clickable==true)//退格{StringBufferstr1=newStringBuffer(text.getText());if(!text.getText().trim().equals("0.")){//如果文本框显示的不是零if(str1.length()!=1){tex
8、t.setText(str1.delete(str1
此文档下载收益归作者所有