计算器加入异常处理机制.doc_第1页
计算器加入异常处理机制.doc_第2页
计算器加入异常处理机制.doc_第3页
计算器加入异常处理机制.doc_第4页
计算器加入异常处理机制.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算器加入异常处理机制import java.awt.Color;import java.awt.Container;import java.awt.Frame;import java.awt.GridLayout;import java.awt.Panel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextField;public class Calculatorextends Frame implements ActionListener private static final long serialVersionUID = 1L;JFrame calculator = new JFrame(计算器); Panel panel; / JTextField tf1; / String string=sqrt,+/-,Backspace,C,7,8,9,/,4,5,6,*,1,2,3,-,0,.,=,+; JButton buttons=new JButtonstring.length; StringBuffer str = new StringBuffer(); /显示屏所显示的字符串 double x,y; /x和y都是运算数 int z; /Z表示单击了那一个运算符.0表示+,1表示-,2表示*,3表示/ static double m;/记忆的数字 public Calculator() /System.out.println(*1); tf1=new JTextField(27);/显示屏 tf1.setHorizontalAlignment(JTextField.RIGHT); tf1.setEnabled(false); tf1.setText(0); panel=new Panel();/ 实例化面板 Container c=calculator.getContentPane(); c.add(tf1,North); c.add(panel,Center); panel.setLayout(new GridLayout(5,4,5,5);/添加面板panel中的组件和设置其在框架中的位置和大小 setResizable(false);/禁止调整框架的大小 /System.out.println(*2); /实例化所有按钮、设置其前景色并注册监听器 for (int i=0; i buttons.length; i+) /System.out.println(*4); buttonsi = new JButton(stringi); panel.add(buttonsi); buttonsi.addActionListener(this); /为按钮注册单击事件监听器 calculator.setSize(400,300); calculator.setVisible(true); /匿名类关闭窗口 addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e1) System.exit(0); ); setBackground(Color.lightGray); /构造监听器 Override public void actionPerformed(ActionEvent e2) / TODO Auto-generated method stub /StringBuffer str1 = new StringBuffer(); try if(e2.getSource()=buttons3)/选择C清零 tf1.setText(0);/把显示屏清零 str.setLength(0);/清空字符串缓冲区以准备接收新的输入运算数 else if(e2.getSource()=buttons1)/单击+/-选择输入的运算数是正数还是负数 x=Double.parseDouble(tf1.getText().trim(); tf1.setText(+(-x); else if(e2.getSource()=buttons19)/单击加号按钮获得x的值和z的值并清空y的值 x=Double.parseDouble(tf1.getText().trim(); str.setLength(0);/清空缓冲区以便接收新的另一个运算数 y=0d; z=0; else if(e2.getSource()=buttons15)/单击减号按钮获得x的值和z的值并清空y的值 x=Double.parseDouble(tf1.getText().trim(); str.setLength(0); y=0d; z=1; else if(e2.getSource()=buttons11)/单击乘号按钮获得x的值和z的值并清空y的值 x=Double.parseDouble(tf1.getText().trim(); str.setLength(0); y=0d; z=2; else if(e2.getSource()=buttons7)/单击除号按钮获得x的值和z的值并空y的值 x=Double.parseDouble(tf1.getText().trim(); str.setLength(0); y=0d; z=3; else if(e2.getSource()=buttons18)/单击等号按钮输出计算结果 str.setLength(0); switch(z) case 0 : tf1.setText(+(x+y);break; case 1 : tf1.setText(+(x-y);break; case 2 : tf1.setText(+(x*y);break; case 3 : tf1.setText(+(x/y);break; else if(e2.getSource()=buttons17)/单击.按钮输入小数 if(tf1.getText().trim().indexOf(.)!=-1)/判断字符串中是否已经包含了小数点 else/如果没数点有小 if(tf1.getText().trim().equals(0)/如果初时显示为0 str.setLength(0); tf1.setText(str.append(0+e2.getActionCommand().toString(); else if(tf1.getText().trim().equals()/如果初时显示为空则不做任何操作 else tf1.setText(str.append(e2.getActionCommand().toString(); y=0d; else if(e2.getSource()=buttons0)/求平方根 x=Double.parseDouble(tf1.getText().trim(); tf1.setText(数字格式异常); if(x0) tf1.setText(负数没有平方根); else tf1.setText(+Math.sqrt(x); str.setLength(0); y=0d; /选择的是其他的按钮 else if(e2.getSource()=buttons16)/如果选择的是0这个数字键 if(tf1.getText().trim().equals(0)/如果显示屏显示的为零不做操作 else tf1.setText(str.append(e2.getActionCommand().toString(); y=Double.parseDouble(tf1.getText().trim(); else if(e2.getSource()=buttons2)/选择的是“BackSpace”按钮 if(!tf1.getText().trim().equals(0)/如果显示屏显示的不是零 if(str.length()!=1) tf1.setText(str.delete(str.length()-1,str.length().toString();/可能抛出字符串越界异常 else tf1.setText(0); str.setLength(0); y=Double.parseDouble(tf1.getText().trim(); else/其他的数字键 tf1.setText(str.append(e2.getActionCommand().toString(); y=Double.parseDouble(tf1.getText().trim(); c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论