为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

计算器的Java源代码

2017-10-10 30页 doc 71KB 85阅读

用户头像

is_654168

暂无简介

举报
计算器的Java源代码计算器的Java源代码 ëV ï??import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; public class Calculator extends JFrame implements ActionListener{ JPanel panel1=new JPanel(); JPanel panel2=new JPanel(); JTextField tfMemory=new...
计算器的Java源代码
计算器的Java源代码 ëV ï??import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; public class Calculator extends JFrame implements ActionListener{ JPanel panel1=new JPanel(); JPanel panel2=new JPanel(); JTextField tfMemory=new JTextField(); JTextField tfResult=new JTextField(); //å?šä?‰æ??å??按é?? JButton button_0=new JButton(); JButton button_1=new JButton(); JButton button_2=new JButton(); JButton button_3=new JButton(); JButton button_4=new JButton(); JButton button_5=new JButton(); JButton button_6=new JButton(); JButton button_7=new JButton(); JButton button_8=new JButton(); JButton button_9=new JButton(); //å?šä?‰å››åˆ?è? ç??按é?? JButton button_add=new JButton(); JButton button_sub=new JButton(); JButton button_mul=new JButton(); JButton button_div=new JButton(); JButton button_dot=new JButton(); JButton button_equal=new JButton(); //å?šä?‰ä?‰è??å‡,æ??按é?? JButton button_sin=new JButton(); JButton button_cos=new JButton(); JButton button_tan=new JButton(); //å?šä?‰å…?ä??è? ç??按é?? JButton button_sqrt=new JButton(); JButton button_daoshu=new JButton(); JButton button_pow=new JButton(); //å?šä?‰åŸŸå??å‚?å??ç›?å…?的按é?? JButton button_MC=new JButton(); JButton button_MR=new JButton(); JButton button_MS=new JButton(); JButton button_MPlus=new JButton(); JButton button_MMinus=new JButton(); //å?šä?‰ä?,ä?ªå??æ??按é?? JButton button_PI=new JButton(); JButton button_E=new JButton(); //å?šä?‰ç?,å??é??å?Œæ?…é›?é?? JButton button_sign=new JButton(); JButton button_CE=new JButton(); //å?šä?‰å?ƒå??æ??å? GridLayout grid1=new GridLayout(); GridBagLayout gridbag1=new GridBagLayout(); GridBagLayout gridbag2=new GridBagLayout(); //ä??å??æœ?è??ä??æ??è??ç??ç?? String recentOperation=null; //ä??å??æœ?è??ä??æ??çš„è??ç??æ??æ ? String recentNum=null; //æ??è??å,?å‰?è??å…,çŠ?æ??﵌æ??é‡?æ??è??å…,è??æ??æ?,åœ?å??é??﵌é‡?æ??è??å… ?æ??ä?ºtrue boolean isNew=true; public Calculator(){ //ä?ºæŒ‰é??æ??册ç›?å??å?? button_0.addActionListener(this); button_1.addActionListener(this); button_2.addActionListener(this); button_3.addActionListener(this); button_4.addActionListener(this); button_5.addActionListener(this); button_6.addActionListener(this); button_7.addActionListener(this); button_8.addActionListener(this); button_9.addActionListener(this); button_add.addActionListener(this); button_sub.addActionListener(this); button_mul.addActionListener(this); button_div.addActionListener(this); button_dot.addActionListener(this); button_equal.addActionListener(this); button_sin.addActionListener(this); button_cos.addActionListener(this); button_tan.addActionListener(this); button_sqrt.addActionListener(this); button_daoshu.addActionListener(this); button_pow.addActionListener(this); button_MC.addActionListener(this); button_MR.addActionListener(this); button_MS.addActionListener(this); button_MPlus.addActionListener(this); button_MMinus.addActionListener(this); button_PI.addActionListener(this); button_E.addActionListener(this); button_sign.addActionListener(this); button_CE.addActionListener(this); //è??ç,?按é??ç‰?å?•(å,?ä,?ã??é?œè‰?ã??内å??) button_0.setFont(new Font("SansSerif",0,12)); button_0.setForeground(Color.blue); button_0.setBorder(BorderFactory.createRaisedBevelBorder()); button_0.setText("0"); button_1.setFont(new Font("SansSerif",0,12)); button_1.setForeground(Color.blue); button_1.setBorder(BorderFactory.createRaisedBevelBorder()); button_1.setText("1"); button_2.setFont(new Font("SansSerif",0,12)); button_2.setForeground(Color.blue); button_2.setBorder(BorderFactory.createRaisedBevelBorder()); button_2.setText("2"); button_3.setFont(new Font("SansSerif",0,12)); button_3.setForeground(Color.blue); button_3.setBorder(BorderFactory.createRaisedBevelBorder()); button_3.setText("3"); button_4.setFont(new Font("SansSerif",0,12)); button_4.setForeground(Color.blue); button_4.setBorder(BorderFactory.createRaisedBevelBorder()); button_4.setText("4"); button_5.setFont(new Font("SansSerif",0,12)); button_5.setForeground(Color.blue); button_5.setBorder(BorderFactory.createRaisedBevelBorder()); button_5.setText("5"); button_6.setFont(new Font("SansSerif",0,12)); button_6.setForeground(Color.blue); button_6.setBorder(BorderFactory.createRaisedBevelBorder()); button_6.setText("6"); button_7.setFont(new Font("SansSerif",0,12)); button_7.setForeground(Color.blue); button_7.setBorder(BorderFactory.createRaisedBevelBorder()); button_7.setText("7"); button_8.setFont(new Font("SansSerif",0,12)); button_8.setForeground(Color.blue); button_8.setBorder(BorderFactory.createRaisedBevelBorder()); button_8.setText("8"); button_9.setFont(new Font("SansSerif",0,12)); button_9.setForeground(Color.blue); button_9.setBorder(BorderFactory.createRaisedBevelBorder()); button_9.setText("9"); button_PI.setFont(new Font("SansSerif",0,12)); button_PI.setForeground(Color.blue); button_PI.setBorder(BorderFactory.createRaisedBevelBorder()); button_PI.setText("Ï?"); button_E.setFont(new Font("SansSerif",0,12)); button_E.setForeground(Color.blue); button_E.setBorder(BorderFactory.createRaisedBevelBorder()); button_E.setText("E"); button_add.setFont(new Font("SansSerif",0,12)); button_add.setForeground(Color.red); button_add.setBorder(BorderFactory.createRaisedBevelBorder()); button_add.setText("+"); button_sub.setFont(new Font("SansSerif",0,12)); button_sub.setForeground(Color.red); button_sub.setBorder(BorderFactory.createRaisedBevelBorder()); button_sub.setText("-"); button_mul.setFont(new Font("SansSerif",0,12)); button_mul.setForeground(Color.red); button_mul.setBorder(BorderFactory.createRaisedBevelBorder()); button_mul.setText("*"); button_div.setFont(new Font("SansSerif",0,12)); button_div.setForeground(Color.red); button_div.setBorder(BorderFactory.createRaisedBevelBorder()); button_div.setText("/"); button_sqrt.setFont(new Font("SansSerif",0,12)); button_sqrt.setForeground(Color.red); button_sqrt.setBorder(BorderFactory.createRaisedBevelBorder()); button_sqrt.setText("sqrt"); button_daoshu.setFont(new Font("SansSerif",0,12)); button_daoshu.setForeground(Color.red); button_daoshu.setBorder(BorderFactory.createRaisedBevelBorder()); button_daoshu.setText("1/x"); button_pow.setFont(new Font("SansSerif",0,12)); button_pow.setForeground(Color.red); button_pow.setBorder(BorderFactory.createRaisedBevelBorder()); button_pow.setText("pow"); button_dot.setFont(new Font("SansSerif",0,12)); button_dot.setForeground(Color.red); button_dot.setBorder(BorderFactory.createRaisedBevelBorder()); button_dot.setText("."); button_equal.setFont(new Font("SansSerif",0,12)); button_equal.setForeground(Color.red); button_equal.setBorder(BorderFactory.createRaisedBevelBorder()); button_equal.setText("="); button_sin.setFont(new Font("SansSerif",0,12)); button_sin.setForeground(Color.red); button_sin.setBorder(BorderFactory.createRaisedBevelBorder()); button_sin.setText("sin"); button_cos.setFont(new Font("SansSerif",0,12)); button_cos.setForeground(Color.red); button_cos.setBorder(BorderFactory.createRaisedBevelBorder()); button_cos.setText("cos"); button_tan.setFont(new Font("SansSerif",0,12)); button_tan.setForeground(Color.red); button_tan.setBorder(BorderFactory.createRaisedBevelBorder()); button_tan.setText("tan"); button_sign.setFont(new Font("SansSerif",0,12)); button_sign.setForeground(Color.red); button_sign.setBorder(BorderFactory.createRaisedBevelBorder()); button_sign.setText("+/-"); button_MC.setFont(new Font("SansSerif",0,12)); button_MC.setForeground(Color.red); button_MC.setBorder(BorderFactory.createRaisedBevelBorder()); button_MC.setText("MC"); button_MR.setFont(new Font("SansSerif",0,12)); button_MR.setForeground(Color.red); button_MR.setBorder(BorderFactory.createRaisedBevelBorder()); button_MR.setText("MR"); button_MS.setFont(new Font("SansSerif",0,12)); button_MS.setForeground(Color.red); button_MS.setBorder(BorderFactory.createRaisedBevelBorder()); button_MS.setText("MS"); button_MPlus.setFont(new Font("SansSerif",0,12)); button_MPlus.setForeground(Color.red); button_MPlus.setBorder(BorderFactory.createRaisedBevelBorder()); button_MPlus.setText("M+"); button_MMinus.setFont(new Font("SansSerif",0,12)); button_MMinus.setForeground(Color.red); button_MMinus.setBorder(BorderFactory.createRaisedBevelBorder()); button_MMinus.setText("M-"); button_CE.setFont(new Font("SansSerif",0,12)); button_CE.setForeground(Color.red); button_CE.setBorder(BorderFactory.createRaisedBevelBorder()); button_CE.setToolTipText(""); button_CE.setText("CE"); //è??ç??ä??ä?ªæ?‡æœ?æ?†çš„ç‰?æ?? tfMemory.setBorder(BorderFactory.createLoweredBevelBorder()); tfMemory.setEditable(false); tfMemory.setText("0"); tfMemory.setHorizontalAlignment(SwingConstants.RIGHT); tfResult.setBorder(BorderFactory.createLoweredBevelBorder()); tfResult.setDisabledTextColor(Color.white); tfResult.setEditable(false); tfResult.setText("0"); tfResult.setHorizontalAlignment(SwingConstants.RIGHT); //ç?Œé??çš„å?ƒå?? panel1.setLayout(gridbag1); panel1.setPreferredSize(new Dimension(333,30)); panel1.add(tfResult,new GridBagConstraints(1,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints. NONE,new Insets(0,15,0,0),155,0)); panel1.add(tfMemory,new GridBagConstraints(0,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints. NONE,new Insets(0,0,0,0),66,0)); panel1.add(button_CE,new GridBagConstraints(2,0,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NO NE,new Insets(0,15,0,4),24,0)); panel2.setBorder(BorderFactory.createRaisedBevelBorder()); grid1=new GridLayout(6,5); grid1.setHgap(2); grid1.setVgap(2); panel2.setLayout(grid1); //æ??åŠ æŒ‰é?? panel2.add(button_MC); panel2.add(button_MR); panel2.add(button_MS); panel2.add(button_MPlus); panel2.add(button_MMinus); panel2.add(button_sin); panel2.add(button_1); panel2.add(button_2); panel2.add(button_3); panel2.add(button_add); panel2.add(button_cos); panel2.add(button_4); panel2.add(button_5); panel2.add(button_6); panel2.add(button_sub); panel2.add(button_tan); panel2.add(button_7); panel2.add(button_8); panel2.add(button_9); panel2.add(button_mul); panel2.add(button_sqrt); panel2.add(button_PI); panel2.add(button_0); panel2.add(button_E); panel2.add(button_div); panel2.add(button_pow); panel2.add(button_daoshu); panel2.add(button_dot); panel2.add(button_equal); panel2.add(button_sign); this.getContentPane().setLayout(gridbag2); this.getContentPane().add(panel2,new GridBagConstraints(0,1,1,1,1.0,1.0,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,new Insets(1,0,1,4),190,15)); this.getContentPane().add(panel1,new GridBagConstraints(0,0,1,1,1.0,1.0,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,new Insets(0,0,1,4),23,0)); this.setResizable(false); this.setTitle("è??ç??å??"); //çª?å??事ä??é?‚é…?å?? this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } //è??å??按é??事ä??å??çš„åŠ?ä,œ public void actionPerformed(ActionEvent e){ if(e.getSource()==button_0){ if(tfResult.getText().equals("0")) return; //åˆ,æ??æ??é‡ æ??è??å…,è??æ??æ?,åœ?å??é?? if(!isNew) tfResult.setText(tfResult.getText()+"0"); else tfResult.setText("0"); isNew=false; } else if(e.getSource()==button_1){ if(!isNew) tfResult.setText(tfResult.getText()+"1"); else tfResult.setText("1"); isNew=false; } else if(e.getSource()==button_2){ if(!isNew) tfResult.setText(tfResult.getText()+"2"); else tfResult.setText("2"); isNew=false; } else if(e.getSource()==button_3){ if(!isNew) tfResult.setText(tfResult.getText()+"3"); else tfResult.setText("3"); isNew=false; } else if(e.getSource()==button_4){ if(!isNew) tfResult.setText(tfResult.getText()+"4"); else tfResult.setText("4"); isNew=false; } else if(e.getSource()==button_5){ if(!isNew) tfResult.setText(tfResult.getText()+"5"); else tfResult.setText("5"); isNew=false; } else if(e.getSource()==button_6){ if(!isNew) tfResult.setText(tfResult.getText()+"6"); else tfResult.setText("6"); isNew=false; } else if(e.getSource()==button_7){ if(!isNew) tfResult.setText(tfResult.getText()+"7"); else tfResult.setText("7"); isNew=false; } else if(e.getSource()==button_8){ if(!isNew) tfResult.setText(tfResult.getText()+"8"); else tfResult.setText("8"); isNew=false; } else if(e.getSource()==button_9){ if(!isNew) tfResult.setText(tfResult.getText()+"9"); else tfResult.setText("9"); isNew=false; } else if(e.getSource()==button_PI){ tfResult.setText(""+Math.PI); isNew=true; } else if(e.getSource()==button_E){ tfResult.setText(""+Math.E); isNew=true; } //å?šä?‰å››åˆ?è? ç?? else if(e.getSource()==button_add){ if((tfResult.getText()).equals("")) return; if(recentOperation!=null) equalaction(e); recentOperation="add"; recentNum=tfResult.getText(); isNew=true; } else if(e.getSource()==button_sub){ if((tfResult.getText()).equals("")) return; if(recentOperation!=null) equalaction(e); recentOperation="sub"; recentNum=tfResult.getText(); isNew=true; } else if(e.getSource()==button_mul){ if((tfResult.getText()).equals("")) return; if(recentOperation!=null) equalaction(e); recentOperation="mul"; recentNum=tfResult.getText(); isNew=true; } else if(e.getSource()==button_div){ if((tfResult.getText()).equals("")) return; if(recentOperation!=null) equalaction(e); recentOperation="div"; recentNum=tfResult.getText(); isNew=true; } //å?šä?‰å??æ??æ ?è? ç?? else if(e.getSource()==button_sqrt){ String showstr=tfResult.getText(); if(showstr.equals("")) return; double ishow=0; try{ ishow=Double.parseDouble(showstr); } catch(NumberFormatException ee){ System.out.println("è??å…,æ??æ ?ä? å ˆæ??ﵕ"); tfResult.setText("è??å…,æ??æ??ä??å?ˆæ??﵌è??é‡?æ??è??å…,"); isNew=true; return; } if(showstr.charAt(0)=='-'){ tfResult.setText("è?Ÿæ??ä??èƒ,åµ?æ ?å ?ï?•"); isNew=true; } else{ tfResult.setText(Double.toString(Math.sqrt(Double.parseDouble(tfResult.getTe xt())))); isNew=true; } } //å?šä?‰æ?‚å??æ??è? ç?? else if(e.getSource()==button_daoshu){ String showstr=tfResult.getText(); if(showstr.equals("")) return; double ishow=0; try{ ishow=Double.parseDouble(showstr); } catch(NumberFormatException ee){ System.out.println("è??å…,æ??æ??ä??å?ˆæ??ïµ?"); tfResult.setText("è??å…,æ??æ??ä??å?ˆæ??﵌è??é‡?æ??è??å…,"); isNew=true; return; } if(showstr.charAt(0)=='0'){ tfResult.setText("0ä??èƒ,æ?‚å??æ??ïµ?"); isNew=true; } else{ isNew=true; } } //å?šä?‰ä??æ??è? ç?? else if(e.getSource()==button_pow){ if((tfResult.getText()).equals("")) return; if(recentOperation!=null) equalaction(e); recentOperation="pow"; recentNum=tfResult.getText(); isNew=true; } else if(e.getSource()==button_dot){ if(tfResult.getText().indexOf(".")!=-1) return; if(!isNew&&tfResult.getText()!="") tfResult.setText(tfResult.getText()+"."); else tfResult.setText("0."); } else if(e.getSource()==button_equal){ equalaction(e); } //å?šä?‰ä?‰è??å‡,æ??è? ç?? else if(e.getSource()==button_sin){ String showstr=tfResult.getText(); if(showstr.equals("")) return; double ishow=0; try{ ishow=Double.parseDouble(showstr); } catch(NumberFormatException ee){ System.out.println("è??å…,æ??æ??ä??å?ˆæ??ïµ?"); tfResult.setText("è??å…,æ??æ??ä??å?ˆæ??﵌è??é‡?æ??è??å…,"); isNew=true; return; } double rd=Math.sin(ishow*Math.PI/180); //è??æ??ä?ºåµ?åº,è?›è?Œè??ç?? int ri=(int)rd; if(ri==rd) tfResult.setText(""+ri); else tfResult.setText(""+rd); isNew=true; } else if(e.getSource()==button_cos){ String showstr=tfResult.getText(); if(showstr.equals("")) return; double ishow=0; try{ ishow=Double.parseDouble(showstr); } catch(NumberFormatException ee){ System.out.println("è??å…,æ??æ??ä??å?ˆæ??ïµ?"); tfResult.setText("è??å…,æ??æ??ä??å?ˆæ??﵌è??é‡?æ??è??å…,"); isNew=true; return; } double rd=Math.cos(ishow*Math.PI/180); int ri=(int)rd; if(ri==rd) tfResult.setText(""+ri); else tfResult.setText(""+rd); isNew=true; } else if(e.getSource()==button_tan){ String showstr=tfResult.getText(); if(showstr.equals("")) return; double ishow=0; try{ ishow=Double.parseDouble(showstr); } catch(NumberFormatException ee){ System.out.println("è??å…,æ??æ??ä??å?ˆæ??ïµ?"); tfResult.setText("è??å…,æ??æ??ä??å?ˆæ??﵌è??é‡?æ??è??å…,"); isNew=true; return; } double rd=Math.tan(ishow*Math.PI/180); int ri=(int)rd; if(ri==rd) tfResult.setText(""+ri); else tfResult.setText(""+rd); isNew=true; } else if(e.getSource()==button_sign){ String showstr=tfResult.getText(); if(showstr.equals("")) return; double ishow=0; try{ ishow=Double.parseDouble(showstr); } catch(NumberFormatException ee){ System.out.println("è??å…,æ??æ??ä??å?ˆæ??ïµ?"); return; } if(ishow>=0) tfResult.setText("-"+showstr); else tfResult.setText(showstr.substring(1,showstr.length())); } //å?šä?‰å??å‚?å??è? ç?? else if(e.getSource()==button_MC){ tfMemory.setText("0"); } else if(e.getSource()==button_MR){ String savedNum=tfMemory.getText(); isNew=true; if(!savedNum.equals("")) tfResult.setText(savedNum); } else if(e.getSource()==button_MS){ tfMemory.setText(tfResult.getText()); } else if(e.getSource()==button_MPlus){ String savednumber=tfMemory.getText(); String showstr=tfResult.getText(); double sn=0,ss=0; if(savednumber.equals("")||showstr.equals("")) return; try{ sn=Double.parseDouble(savednumber); ss=Double.parseDouble(showstr); sn+=ss; } catch(NumberFormatException ee){ System.out.println("è??å…,æ??æ??ä??å?ˆæ??ïµ?"); tfResult.setText("è??å…,æ??æ??ä??å?ˆæ??﵌è??é‡?æ??è??å…,"); isNew=true; return; } int ir=(int)sn; if(ir==sn){ tfResult.setText(""+ir); tfMemory.setText(""+ir); } else{ tfResult.setText(""+sn); tfMemory.setText(""+ir); } isNew=true; } else if(e.getSource()==button_MMinus){ String savednumber=tfMemory.getText(); String showstr=tfResult.getText(); double sn=0,ss=0; if(savednumber.equals("")||showstr.equals("")) return; try{ sn=Double.parseDouble(savednumber); ss=Double.parseDouble(showstr); sn-=ss; } catch(NumberFormatException ee){ System.out.println("è??å…,æ??æ??ä??å?ˆæ??ïµ?"); tfResult.setText("è??å…,æ??æ??ä??å?ˆæ??﵌è??é‡?æ??è??å…,"); isNew=true; return; } int ir=(int)sn; if(ir==sn){ tfResult.setText(""+ir); tfMemory.setText(""+ir); } else{ tfResult.setText(""+sn); tfMemory.setText(""+ir); } isNew=true; } //æ?…é›? else if(e.getSource()==button_CE){ tfResult.setText("0"); isNew=true; recentOperation=null; } } public static void main(String[] args){ Calculator mf=new Calculator(); mf.setBounds(300,200,310,250); mf.show(); } //å››åˆ?è? ç??å?Œä??æ??è? ç?? void equalaction(ActionEvent e){ if(recentOperation==null||recentNum==null||tfResult.getText().equals("")) return; double last=0,now=0; try{ last=Double.parseDouble(recentNum); now=Double.parseDouble(tfResult.getText()); } catch(NumberFormatException ee){ recentOperation=null; recentNum=null; tfResult.setText("è??å…,æ??æ??ä??å?ˆæ??"); System.out.println("è??å…,æ??æ??ä??å?ˆæ??"); isNew=true; return; } if(recentOperation.equals("add")){ int r=(int)(last+now); if(r==last+now) tfResult.setText(""+r); else tfResult.setText(""+(last+now)); } if(recentOperation.equals("sub")){ int r=(int)(last-now); if(r==last-now) tfResult.setText(""+r); else tfResult.setText(""+(last-now)); } if(recentOperation.equals("mul")){ int r=(int)(last*now); if(r==last*now) tfResult.setText(""+r); else tfResult.setText(""+(last*now)); } if(recentOperation.equals("div")){ int r=(int)(last/now); if(r==last/now) tfResult.setText(""+r); else tfResult.setText(""+(last/now)); } //å?šä?‰ä??æ??è? ç?? if(recentOperation.equals("pow")){ int r=(int)Math.pow(last,now); if(r==Math.pow(last,now)) tfResult.setText(""+r); else tfResult.setText(""+Math.pow(last,now)); } recentNum=tfResult.getText(); recentOperation=null; isNew=true; } }
/
本文档为【计算器的Java源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索