快速业务通道

Java实现计算器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
lse if(label=="Backspace") handleBackspace(); else if(label=="CE") display.setText("0"); else if("0123456789.".indexOf(label)>=0) {handleNumber(label); // handlezero(zero); } else handleOperator(label); } private boolean firstDigit=true; private void handleNumber(String key) { if(firstDigit) display.setText(key); else if((key.equals("."))&&(display.getText().indexOf(".")<0)) display.setText(display.getText()+"."); else if(!key.equals(".")) display.setText(display.getText()+key); firstDigit=false; } //private void handlezero(String key) //{ // if(!((double)display.setText(key)) // display.setText(0); // } private double number=0.0; private String operator="="; private void handleOperator(String key) { if(operator.equals("/")) { if(getNumberFromDisplay()==0.0) display.setText("除数不能为零"); else { number/=getNumberFromDisplay(); long t1; double t2; t1=(long)number; t2=number-t1; if(t2==0) display.setText(String.valueOf(t1)); else display.setText(String.valueOf(number)); } } else if(operator.equals("1/x")) { if(number==0.0) display.setText("零没有倒数"); else { number=1/number; long t1; double t2; t1=(long)number; t2=number-t1; if(t2==0) display.setText(String.valueOf(t1)); else display.setText(String.valueOf(number)); } } else if(operator.equals("+")) number+=getNumberFromDisplay(); else if(operator.equals("-")) number-=getNumberFromDisplay(); else if(operator.equals("*")) number*=getNumberFromDisplay(); else if(operator.equals("sqrt")) { number=Math.sqrt(number); } else if(operator.equals("%")) number=number/100; else if(operator.equals("+/-")) number=number*(-1); else if(operator.equals("=")) number=getNumberFromDisplay(); long t1; double t2; t1=(long)number; t2=number-t1; if(t2==0) display.setText(String.valueOf(t1)); else display.setText(String.valueOf(number)); operator=key; firstDigit=true; } private double getNumberFromDisplay() { return Double.valueOf(display.getText()).doubleValue(); } private void handleC() { display.setText("0"); firstDigit=true; operator="="; } private void handleBackspace() { String text=display.getText(); int i=text.length(); if(i>0) { text=text.substring(0,i-1); if(text.length()==0) { display.setText("0"); firstDigit=true; operator="="; } else display.setText(text); } } public static void main(String args[]) { JFrame f=new JFrame(); Calculator Calculator1=new Calculator(); Calculator1.init(); f.getContentPane().add("Center",Calculator1); f.setVisible(true); f.setBounds(300,200,380,245); f.setBackground(Color.LIGHT_GRAY); f.validate(); f.setResizable(false); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); f.setTitle("计算器"); } }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号