您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > java版计算器源代码
java版计算器源代码:importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.*;importjava.awt.*;importjava.math.BigDecimal;importjava.math.MathContext;importjava.math.RoundingMode;importjava.awt.Color;/***java版计算器*/publicclassCalculatorextendsJFrame{finalintWIN_W=250,WIN_H=250;JPanelmyPanel,panelSuper;publicCalculator(){//主面板panelSuper=newJPanel();panelSuper.setLayout(null);//设置窗口位置doublewidth=Toolkit.getDefaultToolkit().getScreenSize().width;doubleheight=Toolkit.getDefaultToolkit().getScreenSize().height;this.setBounds((int)(width-WIN_W)/2,(int)(height-WIN_H)/2,WIN_W,WIN_H);//窗口配置this.setTitle(java版计算器);this.validate();this.setResizable(false);this.setVisible(true);this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);//添加计算器按钮面板myPanel=newMyPanel();this.add(myPanel,BorderLayout.CENTER);}publicstaticvoidmain(String[]args){newCalculator();}/***计算器按钮面板类*/classMyPanelextendsJPanelimplementsActionListener{JButtonbutton1,button2,button3,button4,button5,button6,button7,button8,button9,button0,buttonJia,buttonJian,buttonCheng,buttonChu,buttonDeng,buttonDian,buttonC,buttonDel,buttonZF,buttonGH;JTextFieldjTextField;//计算器显示屏charoper;//操作符Stringkey,allKey=1234567890.±del,jjccKey=+-*/;BigDecimald1,d2;booleanfirst;publicMyPanel(){//设置布局this.setLayout(newFlowLayout(FlowLayout.LEFT,4,5));//计算器显示屏jTextField=newJTextField(21);jTextField.setHorizontalAlignment(JTextField.RIGHT);jTextField.setEditable(false);jTextField.setBackground(newColor(255,255,255));jTextField.setText(0);this.add(jTextField);//计算器按钮button1=newJButton(1);button2=newJButton(2);button3=newJButton(3);button4=newJButton(4);button5=newJButton(5);button6=newJButton(6);button7=newJButton(7);button8=newJButton(8);button9=newJButton(9);button0=newJButton(0);buttonJia=newJButton(+);buttonJian=newJButton(-);buttonCheng=newJButton(*);buttonChu=newJButton(/);buttonDeng=newJButton(=);buttonDian=newJButton(.);buttonDel=newJButton(del);buttonC=newJButton(c);buttonZF=newJButton(±);buttonGH=newJButton(√);button1.setPreferredSize(newDimension(55,30));button2.setPreferredSize(newDimension(55,30));button3.setPreferredSize(newDimension(55,30));button4.setPreferredSize(newDimension(55,30));button5.setPreferredSize(newDimension(55,30));button6.setPreferredSize(newDimension(55,30));button7.setPreferredSize(newDimension(55,30));button8.setPreferredSize(newDimension(55,30));button9.setPreferredSize(newDimension(55,30));button0.setPreferredSize(newDimension(55,30));buttonJia.setPreferredSize(newDimension(55,30));buttonJian.setPreferredSize(newDimension(55,30));buttonCheng.setPreferredSize(newDimension(55,30));buttonChu.setPreferredSize(newDimension(55,30));buttonDeng.setPreferredSize(newDimension(55,30));buttonDian.setPreferredSize(newDimension(55,30));buttonDel.setPreferredSize(newDimension(55,30));buttonC.setPreferredSize(newDimension(55,30));buttonZF.setPreferredSize(newDimension(55,30));buttonGH.setPreferredSize(newDimension(55,30));this.add(buttonDel);this.add(buttonC);this.add(buttonZF);this.add(buttonGH);this.add(button1);this.add(button2);this.add(button3);this.add(buttonJia);this.add(button4);this.add(button5);this.add(button6);this.add(buttonJian);this.add(button7);this.add(button8);this.add(button9);this.add(buttonCheng);this.add(button0);this.add(buttonDian);this.add(buttonDeng);this.add(buttonChu);buttonDel.addActionListener(this);buttonC.addActionListener(this);buttonZF.addActionListener(this);buttonGH.addActionListener(this);button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);button6.addActionListener(this);button7.addActionListener(this);button8.addActionListener(this);button9.addActionListener(this);button0.addActionListener(this);buttonJia.addActionListener(this);buttonJian.addActionListener(this);buttonCheng.addActionListener(this);buttonChu.addActionListener(this);buttonDeng.addActionListener(this);buttonDian.addActionListener(this);//计算器初始化init();}/***计算器初始化*/publicvoidinit(){d1=newBigDecimal(0);d1=newBigDecimal(0);key==;oper='=';jTextField.setText(0);first=true;//用于标记是否进行连续操作(例如按键顺序为“9*9====”,第一次等于first由true变为false,如果!first,按等号相当于用上一次的结果与第二个操作数相乘)}/***按钮监听*/publicvoidactionPerformed(ActionEvente){JButtonb=(JButton)e.getSource();if(b==buttonDian){//按下.jTextField.setText(jTextField.getText()+.);if(first){d2=d1=getNum();}else{d2=getNum();}}elseif(b==buttonZF){//按下±BigDecimald=getNum();d=newBigDecimal(0).subtract(d);setFormatNum(d);if(first){d2=d1=getNum();}else{d2=getNum();}}elseif(b==buttonDel){//按下delif(jTextField.getText().length()==1||jTextField.getText().length()==2&&jTextField.getText().startsWith(-)){jTextField.setText(0);}else{Strings=jTextField.getText();s=s.substring(0,s.length()-1);if(s.endsWith(E+)||s.endsWith(E-))s=s.substring(0,s.length()-2);jTextField.setText(s);if(first){d2=d1=getNum();}else{d2=getNum();}}}elseif(b==buttonC){//按下cinit();}elseif(b==buttonJia){//按下+BigDecimals;if(!first&&allKey.indexOf(key)=0){if(oper=='-'||o
本文标题:java版计算器源代码
链接地址:https://www.777doc.com/doc-4483899 .html