如何用java写一个简单的计算器

[复制链接]
查看11 | 回复3 | 2011-10-30 11:57:02 | 显示全部楼层 |阅读模式
回复

使用道具 举报

千问 | 2011-10-30 11:57:02 | 显示全部楼层
importjava.awt.Button;importjava.awt.Color;importjava.awt.Frame;importjava.awt.GridLayout;importjava.awt.Panel;importjava.awt.TextField;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;publicclassCalculatorextendsWindowAdapterimplementsMouseListener{privateStringfirst;privateStringsecond;privateStringoperator;privateButtonzero=newButton(\"0\");privateButtonone=newButton(\"1\");privateButtontwo=newButton(\"2\");privateButtonthree=newButton(\"3\");privateButtonfour=newButton(\"4\");privateButtonfive=newButton(\"5\");privateButtonsix=newButton(\"6\");privateButtonseven=newButton(\"7\");privateButtoneight=newButton(\"8\");privateButtonnine=newButton(\"9\");privateButtondecimal=newButton(\".\");privateButtonequal=newButton(\"=\");privateButtonadd=newButton(\"\");privateButtonsub=newButton(\"-\");privateButtonmul=newButton(\"*\");privateButtondiv=newButton(\"/\");privateTextFieldinput=newTextField();privateButtonCE=newButton(\"CE\");privateButtonDEL=newButton(\"Del\");publicstaticvoidmain(String[]args){newCalculator();}publicCalculator(){Framef=newFrame(\"Calculator\");f.add(\"North\",input);Panelkeys=newPanel();f.add(keys,\"Center\");keys.setLayout(newGridLayout(4,4));keys.add(seven);keys.add(eight);keys.add(nine);keys.add(add);keys.add(four);keys.add(five);keys.add(six);keys.add(sub);keys.add(one);keys.add(two);keys.add(three);keys.add(mul);keys.add(zero);keys.add(decimal);keys.add(equal);keys.add(div);zero.addMouseListener(this);one.addMouseListener(this);two.addMouseListener(this);three.addMouseListener(this);four.addMouseListener(this);five.addMouseListener(this);six.addMouseListener(this);seven.addMouseListener(this);eight.addMouseListener(this);nine.addMouseListener(this);add.addMouseListener(this);sub.addMouseListener(this);div.addMouseListener(this);mul.addMouseListener(this);equal.addMouseListener(this);decimal.addMouseListener(this);PaneladdtionalPanel=newPanel();addtionalPanel.setLayout(newGridLayout(1,2));addtionalPanel.add(CE);addtionalPanel.add(DEL);CE.setBackground(Color.green);DEL.setBackground(Color.cyan);CE.addMouseListener(this);DEL.addMouseListener(this);f.add(\"South\",addtionalPanel);f.addWindowListener(this);f.setVisible(true);f.setLocation(200,300);f.setSize(200,200);}publicvoidwindowClosing(WindowEvente){System.exit(0);}publicvoidmouseClicked(MouseEvente){Buttonbtn=(Button)e.getSource();Stringkey=btn.getActionCommand().trim();if(btn==one||btn==two||btn==three||btn==zero||btn==four||btn==five||btn==six||btn==seven||btn==eight||btn==nine){if(isBlank(operator)){if(isBlank(first)){first=key;}else{first=key;}input.setText(first);}else{if(isBlank(second)){second=key;}else{second=key;}input.setText(second);}}elseif(btn==decimal){if(isBlank(operator)){if(isBlank(first)){first=\"0.\";input.setText(first);}else{if(first.indexOf(\".\")==-1){first=\".\";input.setText(first);}}}else{if(isBlank(second)){second=\"0.\";input.setText(second);}else{if(second.indexOf(\".\")==-1){second=\".\";input.setText(second);}}}}elseif(btn==equal){if(!isBlank(second)if(operator.equals(\"\")){result=Double.parseDouble(first)Double.parseDouble(second);}elseif(operator.equals(\"-\")){result=Double.parseDouble(first)-Double.parseDouble(second);}elseif(operator.equals(\"*\")){result=Double.parseDouble(first)*Double.parseDouble(second);}elseif(operator.equals(\"/\")){result=Double.parseDouble(first)/Double.parseDouble(second);}intvalue=(int)Math.round(result);if(value==result){input.setText(String.valueOf(value));}else{input.setText(String.valueOf(result));}first=String.valueOf(result);second=null;operator=null;}}elseif(btn==add||btn==sub||btn==div||btn==mul){if(!isBlank(first)){if(!isBlank(operator)}elseif(operator.equals(\"-\")){first=String.valueOf(Double.parseDouble(first)-Double.parseDouble(second));}elseif(operator.equals(\"*\")){first=String.valueOf(Double.parseDouble(first)*Double.parseDouble(second));}elseif(operator.equals(\"/\")){first=String.valueOf(Double.parseDouble(first)/Double.parseDouble(second));}second=null;}operator=key;}}elseif(btn==CE){first=null;second=null;operator=null;input.setText(null);}elseif(btn==DEL){if(isBlank(operator)){if(!isBlank(first)){first=first.substring(0,first.length()-1);input.setText(first);}}else{if(!isBlank(second)){second=second.substring(0,second.length()-1);input.setText(second);}}}}privatebooleanisBlank(Stringstr){returnstr==null||str.trim().equals(\"\");}publicvoidmousePressed(MouseEvente){}publicvoidmouseReleased(MouseEvente){}publicvoidmouseEntered(MouseEvente){}publicvoidmouseExited(MouseEvente){}}
回复

使用道具 举报

千问 | 2011-10-30 11:57:02 | 显示全部楼层
用手写啊赞同
回复

使用道具 举报

千问 | 2011-10-30 11:57:02 | 显示全部楼层
http://wenku.baidu.com/view/3173d870f242336c1eb95e5b.html这个是我自己写的比较完整步骤,虽然比较简单,有问题HI我参考资料:http://wenku.baidu.com/view/3173d870f242336c1eb95e5b.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行