您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 计算器模拟程序的Java代码
1/16计算器模拟程序的Java代码importjava.awt.Button;importjava.awt.Frame;importjava.awt.GridLayout;importjava.awt.Panel;importjava.awt.*;importjava.awt.event.*;importjava.awt.event.ActionListener;importjavax.swing.JFrame;importjavax.swing.*;publicclassCalextendsJFrame{GridLayoutgl3;Panelp0,p3;JTextFieldtf1;JButtonb7,b8,b9,b10,b12,b13,b14,b15,b17,b18,b19,b20,b22,b24,b25,b26;StringBufferstr;//显示屏所显示的字符串doublex,y;//x和y都是运算数doublesum=0;//加和doublemul=1;//乘积doublesub=0;//减差令其为输入的第一个值doubledev;//除商令其为输入的第一个值booleantag=true;booleantag1=true;intz=-1,k;//Z表示单击了那一个运算符.0表示+,1表示2/16-,2表示*,3表示///staticdoublem;//记忆的数字publicCal(){Containercon=getContentPane();con.setLayout(newFlowLayout());gl3=newGridLayout(4,4,15,15);tf1=newJTextField(30);//显示屏tf1.setHorizontalAlignment(JTextField.RIGHT);tf1.setEnabled(false);tf1.setEditable(false);tf1.setText(0);tf1.addKeyListener(newTt());b7=newJButton(7);b7.setForeground(Color.blue);b7.addActionListener(newBt());b8=newJButton(8);b8.setForeground(Color.blue);b8.addActionListener(newBt());b9=newJButton(9);b9.setForeground(Color.blue);b9.addActionListener(newBt());b10=newJButton(/);b10.setForeground(Color.red);3/16b10.addActionListener(newBt());b12=newJButton(4);b12.setForeground(Color.blue);b12.addActionListener(newBt());b13=newJButton(5);b13.setForeground(Color.blue);b13.addActionListener(newBt());b14=newJButton(6);b14.setForeground(Color.blue);b14.addActionListener(newBt());b15=newJButton(*);b15.setForeground(Color.red);b15.addActionListener(newBt());b17=newJButton(1);b17.setForeground(Color.blue);b17.addActionListener(newBt());b18=newJButton(2);b18.setForeground(Color.blue);b18.addActionListener(newBt());b19=newJButton(3);b19.setForeground(Color.blue);b19.addActionListener(newBt());4/16b20=newJButton(-);b20.setForeground(Color.red);b20.addActionListener(newBt());b22=newJButton(0);b22.setForeground(Color.blue);b22.addActionListener(newBt());b24=newJButton(.);b24.setForeground(Color.blue);b24.addActionListener(newBt());b25=newJButton(+);b25.setForeground(Color.red);b25.addActionListener(newBt());b26=newJButton(=);b26.setForeground(Color.red);b26.addActionListener(newBt());//实例化四个面板p0=newPanel();//p1=newPanel();//p2=newPanel();5/16p3=newPanel();//p4=newPanel();//创建一个空字符串缓冲区str=newStringBuffer();con.add(p0);con.add(p3);//添加面板p0中的组件和设置其在框架中的位置和大小p0.add(tf1);p0.setBounds(10,40,280,40);//添加面板p1中的组件和设置其在框架中的位置和大小//添加面板p2中的组件并设置其的框架中的位置和大小//p2.setLayout(gl2);//p2.add(b3);//p2.add(b4);//p2.add(b5);//p2.add(b6);//p2.setBounds(10,110,40,150);//添加面板p3中的组件并设置其在框架中的位置和大小p3.setLayout(gl3);//设置p3的布局p3.add(b7);p3.add(b8);p3.add(b9);p3.add(b10);//p3.add(b11);p3.add(b12);p3.add(b13);p3.add(b14);p3.add(b15);6/16//p3.add(b16);p3.add(b17);p3.add(b18);p3.add(b19);p3.add(b20);//p3.add(b21);p3.add(b22);//p3.add(b23);p3.add(b24);p3.add(b25);p3.add(b26);p3.setBounds(10,100,280,150);//添加面板p4中的组件和设置其在框架中的位置和大小//设置框架中的布局为空布局并添加4个面板setLayout(null);add(p0);add(p3);//add(p4);setTitle(计算器);setResizable(false);//禁止调整框架的大小//匿名类关闭窗口addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente1){System.exit(0);}});setBackground(Color.lightGray);setBounds(100,100,310,300);7/16setVisible(true);}classBtimplementsActionListener{//z:0表示+,1表示-,2表示*,3表示/publicdoublettt(){switch(z){case0:sum=sum+y;y=sum;break;case1:sub=sub-y;y=sub;break;case2:mul=mul*y;y=mul;break;case3:dev=dev/y;y=dev;break;}8/16returny;}publicvoidactionPerformed(ActionEvente2){try{if(e2.getSource()==b25)//单击加号按钮获得x的值和z的值并清空y的值{if(z==0||z==-1){x=y;sum=sum+x;}else{sum=this.ttt();}str.setLength(0);//清空缓冲区以便接收新的另一个运算数tf1.setText(+sum);z=0;}elseif(e2.getSource()==b20)//单击减号按钮获得x的值和z的值并清空y的值{9/16if(z==1||z==-1){x=y;if(tag==true){sub=x;tag=false;}else{sub=sub-x;}}else{sub=this.ttt();}str.setLength(0);z=1;tf1.setText(+sub);}elseif(e2.getSource()==b15)//单击乘号按钮获得x的值和z的值并清空y的值{if(z==2||z==-1){x=y;mul=mul*x;10/16}else{mul=this.ttt();}str.setLength(0);tf1.setText(+mul);z=2;}elseif(e2.getSource()==b10)//单击除号按钮获得x的值和z的值并空y的值{if(z==3||z==-1){x=y;if(tag1==true){dev=x;tag1=false;}else{if(x==0){tf1.setText(除数不能为零);}else{dev=dev/x;}}}11/16else{dev=this.ttt();}str.setLength(0);tf1.setText(+dev);z=3;}elseif(e2.getSource()==b26)//单击等号按钮输出计算结果{str.setLength(0);switch(z){case0:tf1.setText(+(sum+y));y=Double.parseDouble(tf1.getText().trim());sum=0;break;case1:tf1.setText(+(sub-y));y=Double.parseDouble(tf1.getText().trim());sub=0;tag=true;break;case2:tf1.setText(+(mul*y));y=12/16Double.parseDouble(tf1.getText().trim());mul=0;break;case3:if(y==0){tf1.setText(除数不能为零);}else{tf1.setText(+(dev/y));}y=Double.parseDouble(tf1.getText().trim());dev=0;tag1=true;break;}}elseif(e2.getSource()==b24)//单击.按钮输入小数{if(tf1.getText().trim().indexOf('.')!=-1)//判断字符串中是否已经包含了小数点{}else//如果没数点有小{if(tf1.getText().trim().equals(0))//如果初时显示为0{str.setLength(0);13/16//System.out.println(str);tf1.setText((str.append(0+e2.getActionCommand())).toString());}elseif(tf1.getText().trim().equals())//如果初时显示为空则不做任何操作{}else{tf1.setText(str.append(e2.getActionCommand()).toString());}}y=0d;}else//选择的是其他的按钮{if(e2.getSource()==b22)/
本文标题:计算器模拟程序的Java代码
链接地址:https://www.777doc.com/doc-3152043 .html