用java编写的计算器(特点代码短)

leayefang 贡献于2012-07-29

作者 雨林木风  创建于2009-04-28 15:05:00   修改者雨林木风  修改于2009-04-28 15:41:00字数2113

文档摘要:用java编写的计算器
关键词:

// 一个简单计算器,java application程序,支持对于整数的+、-、*、/等基本运算。//特点,代码短,但仍然能实现基本的功能 import javax.swing.*; import java.awt.*; import java.awt.event.*; class JB extends JFrame implements ActionListener,MouseListener{ //定义窗口JB类继承Jframe,并添加2个事件接口 private double n=0; private double m1=0,m2=0; private int flag=0; JTextField t1;JLabel l1; JButton b[]=new JButton[16]; // 创建按扭树组 String s[]={"0","1","2","3","4","5","6","7","8","9","+","-","*","/","C","="}; JB(){ setSize(400,300); // 设置窗口大小 Container c=getContentPane(); // c.setLayout(new GridLayout(5,4,10,10)); //设置为网格布局,5行4列 l1=new JLabel("My calculator");//标签组件,显示计算器名字 c.add(l1); c.add(new JLabel());//添加空标签对象 c.add(new JLabel()); t1=new JTextField("0");//文本框组件,显示运算数据 c.add(t1); int i; for(i=0;i<16;i++) // 创建16个按钮组件 { b[i]=new JButton(s[i]); c.add(b[i]); b[i].addActionListener(this); // 注册事件监听器件对象 } setVisible(true); // 设置可见性 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //窗口关闭时退出程序 } public void mousePressed(MouseEvent e){ } // 以下是实现接口类的6个抽象方法 public void mouseReleased(MouseEvent e){ } public void mouseEntered(MouseEvent e){ } public void mouseExited(MouseEvent e){ } public void mouseClicked(MouseEvent e){ } public void actionPerformed(ActionEvent e){ String str="";int i; for(i=0;i<=9;i++) // 显示输入的数据的过程及结果 if(e.getSource()==b[i]){ n=n*10+i; str=String.valueOf(n); t1.setText(str); } for(i=10;i<=13;i++) if(e.getSource()==b[i]){ //依次寻找与所事件匹配的的运算符是那种 m1=Double.parseDouble(t1.getText()); if(flag==10) m2=m1+m2; //如果连续2次或以上点击运算符而没有按“C”或“=”键,则计算//并保存到m2 else if(flag==11) m2=m2-m1; else if(flag==12) m2=m2*m1; else if(flag==13) m2=m2/m1; else m2=m1; // 如果没有连续的运算符运算,就保存当前数据到m2 if(i==10) flag=10; // 记录运算符 else if(i==11) flag=11; else if(i==12) flag=12; else flag=13; str=String.valueOf(m2); t1.setText(str); //显示连续的运算过程 n=0; // n还原0,记录下次输入数据 break; // 如果找到了匹配的运算符并完成运算和记录就退出寻找过程 } if(e.getSource()==b[15]){ //如果事件是"=" m1=Double.parseDouble(t1.getText()); if(flag==10) m2=m1+m2; //判断运算符,并作计算,显示运算结果 else if(flag==11) m2=m2-m1; else if(flag==12) m2=m2*m1; else if(flag==13) m2=m2/m1; str=String.valueOf(m2); t1.setText(str); // 显示运算结果 n=0; // n还原0,记录下次输入数据 flag=0; // flag还原0,表明没有未处理的运算符 } if(e.getSource()==b[14]){ //如果事件是"C"即作清楚,各变量还原0 m1=0; m2=0; flag=0; n=0; t1.setText("0"); } } } public class Calculator{ //主类 public static void main(String []args){ JB my=new JB();}}

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享文档获得金币 ] 1 人已下载

下载文档