java练笔-计算器

来源:互联网 发布:java 9 模块maven 编辑:程序博客网 时间:2024/05/06 06:03
package calculator;import java.awt.*;import javax.swing.*;import java.awt.event.*;public class Calculator{double shuju[] =new double[99];//寄存数据信息double daan;  //答案显示数据double zhongjianshuju[]=new double[99]; //寄存中间运算数据private JFrame CalculatorFrame = null;    privateJButton[] CalculatorButton = new JButton[10];    privateJButton CalculatorButton0 = new JButton("0");    privateJButton CalculatorButtonPoint =new JButton(".");    privateJButton CalculatorButtonEnter =new JButton("=");;    privateJButton CalculatorButtonPlus =  new JButton("+");    privateJButton CalculatorButtonDecrease = new JButton("-");    privateJButton CalculatorButtonMuti = new JButton("*");    privateJButton CalculatorButtonDivide = new JButton("/");    privateJButton CalculatorButtonBackspace =new JButton("←");    JTextField SJ =new JTextField(10);//输入数据显示器    JTextField DA =new JTextField(15);//答案显示器    String zifushuju;    public  Calculator()    {    CalculatorFrame = new JFrame("计算器");//创建框架Toolkit tk = Toolkit.getDefaultToolkit();//获取屏幕高度,确定窗口大小Dimension screenSize = tk.getScreenSize();int screenHeight = screenSize.height; int screenWidth = screenSize.width;CalculatorFrame.setSize(screenWidth/6,screenHeight/3);CalculatorFrame.setResizable(false); CalculatorFrame.setLocationRelativeTo(null);CalculatorFrame.setVisible(true);CalculatorFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container WZ = CalculatorFrame.getContentPane();//子容器控制WZ.setLayout(new BoxLayout(WZ,BoxLayout.Y_AXIS));JPanel  QY[] = new JPanel[7];int i;for(i=0;i<6;i++){//创建子容器(区域)表示各种区,运算区,神马的    QY[i]=new JPanel();    CalculatorFrame.add(QY[i]);    }    for(i=1;i<10;i++){    CalculatorButton[i] = new JButton(""+i);    CalculatorButton[i].addActionListener(new JT());    if(i>0&&i<=3){        QY[4].add(CalculatorButton[i]);    }    if(i>3&&i<7){          QY[3].add(CalculatorButton[i]);    }    if(i>6&&i<10){        QY[2].add(CalculatorButton[i]);    }    }    CalculatorButtonPlus.addActionListener(new JT());    CalculatorButton0.addActionListener(new JT());    CalculatorButtonDecrease.addActionListener(new JT());    CalculatorButtonMuti.addActionListener(new JT());    CalculatorButtonDivide.addActionListener(new JT());    CalculatorButtonEnter.addActionListener(new JT());    CalculatorButtonBackspace.addActionListener(new JT());    CalculatorButtonPoint.addActionListener(new JT());    SJ.setHorizontalAlignment(JTextField.RIGHT);     SJ.setEnabled(false);    DA.setEnabled(false);    DA.setHorizontalAlignment(JTextField.RIGHT);    QY[0].add(DA);    QY[1].add(SJ);    QY[1].add(CalculatorButtonBackspace);    QY[2].add(CalculatorButtonDivide);    QY[3].add(CalculatorButtonMuti);    QY[4].add(CalculatorButtonDecrease);    QY[5].add(CalculatorButtonPoint);    QY[5].add(CalculatorButton0);    QY[5].add(CalculatorButtonEnter);    QY[5].add(CalculatorButtonPlus);          }    public class JT implements ActionListener //监听(JT)按钮    {      public void actionPerformed(ActionEvent XY)//对每个每个按钮做出响应(XY)     {      if(XY.getSource()==CalculatorButton0)      press0();     else if(XY.getSource()==CalculatorButton[1])      press1();     else if(XY.getSource()==CalculatorButton[2])      press2();     else if(XY.getSource()==CalculatorButton[3])      press3();     else if(XY.getSource()==CalculatorButton[4])      press4();     else if(XY.getSource()==CalculatorButton[5])      press5();     else if(XY.getSource()==CalculatorButton[6])      press6();     else if(XY.getSource()==CalculatorButton[7])      press7();     else if(XY.getSource()==CalculatorButton[8])      press8();     else if(XY.getSource()==CalculatorButton[9])      press9();     else if(XY.getSource()==CalculatorButtonPoint)      pressPoint();     else if(XY.getSource()==CalculatorButtonEnter)      pressEnter();     else if(XY.getSource()==CalculatorButtonPlus)      pressPlus();     else if(XY.getSource()==CalculatorButtonDecrease)      pressDecrease();     else if(XY.getSource()==CalculatorButtonMuti)      pressMuti();     else if(XY.getSource()==CalculatorButtonDivide)      pressDivide();     else if(XY.getSource()==CalculatorButtonBackspace)      pressBackspace();     }    }int i=0;int a=0;int b=0;public void press0(){    if(shuju[i]!=0&&b==0){    shuju[i]=shuju[i]*10;    }    if(shuju[i]==0&&b==0){    shuju[i]=0;    }    if(b==1){        zifushuju+="0";    }    SJ.setText(""+shuju[i]);     }    public void press1(){    if(b==0){        if(shuju[i]!=0){        shuju[i]=shuju[i]*10+1;        }        if(shuju[i]==0){        shuju[i]=1;        }        SJ.setText(""+shuju[i]);         }        if(b==1){         zifushuju+="1";         SJ.setText(zifushuju);        }            }    public void press2(){    if(b==0){        if(shuju[i]!=0){        shuju[i]=shuju[i]*10+2;        }        if(shuju[i]==0){        shuju[i]=2;        }        SJ.setText(""+shuju[i]);         }        if(b==1){         zifushuju+="2";         SJ.setText(zifushuju);        }            }    public void press3(){    if(b==0){        if(shuju[i]!=0){        shuju[i]=shuju[i]*10+3;        }        if(shuju[i]==0){        shuju[i]=3;        }        SJ.setText(""+shuju[i]);         }        if(b==1){         zifushuju+="3";         SJ.setText(zifushuju);        }            }    public void press4(){    if(b==0){        if(shuju[i]!=0){        shuju[i]=shuju[i]*10+4;        }        if(shuju[i]==0){        shuju[i]=4;        }        SJ.setText(""+shuju[i]);         }        if(b==1){         zifushuju+="4";         SJ.setText(zifushuju);        }            }    public void press5(){    if(b==0){        if(shuju[i]!=0){        shuju[i]=shuju[i]*10+5;        }        if(shuju[i]==0){        shuju[i]=5;        }        SJ.setText(""+shuju[i]);         }        if(b==1){         zifushuju+="5";         SJ.setText(zifushuju);        }            }    public void press6(){     if(b==0){       if(shuju[i]!=0){    shuju[i]=shuju[i]*10+6;       }       if(shuju[i]==0){    shuju[i]=6;        }       SJ.setText(""+shuju[i]);        }    if(b==1){        zifushuju+="6";        SJ.setText(zifushuju);    }        }    public void press7(){    if(b==0){        if(shuju[i]!=0){        shuju[i]=shuju[i]*10+7;        }        if(shuju[i]==0){        shuju[i]=7;        }        SJ.setText(""+shuju[i]);         }        if(b==1){         zifushuju+="7";         SJ.setText(zifushuju);        }            }    public void press8(){    if(b==0){        if(shuju[i]!=0){        shuju[i]=shuju[i]*10+8;        }        if(shuju[i]==0){        shuju[i]=8;        }        SJ.setText(""+shuju[i]);         }        if(b==1){         zifushuju+="8";         SJ.setText(zifushuju);        }            }    public void press9(){    if(b==0){        if(shuju[i]!=0){        shuju[i]=shuju[i]*10+9;        }        if(shuju[i]==0){        shuju[i]=9;        }        SJ.setText(""+shuju[i]);         }        if(b==1){         zifushuju+="9";         SJ.setText(zifushuju);        }            }    public void pressPoint(){    zifushuju = String.valueOf(shuju[i]);      zifushuju = zifushuju.substring(0,zifushuju.length()-1);    b=1;    SJ.setText(zifushuju);     }    public void pressPlus(){    if(b==1){shuju[i] = Double.parseDouble(zifushuju);}         if(i==0){zhongjianshuju[i]=shuju[i];}        else { switch(a){        case 0:{break;}        case 1:{zhongjianshuju[i]=zhongjianshuju[i-1]+shuju[i];a=0;break;}        case 2:{zhongjianshuju[i]=zhongjianshuju[i-1]-shuju[i];a=0;break;}        case 3:{zhongjianshuju[i]=zhongjianshuju[i-1]*shuju[i];a=0;break;}        case 4:{zhongjianshuju[i]=zhongjianshuju[i-1]/shuju[i];a=0;break;}        }}    a=1;    b=0;    SJ.setText("+");    i++;    }    public void pressDecrease(){    if(b==1){shuju[i] = Double.parseDouble(zifushuju);}         if(i==0){zhongjianshuju[i]=shuju[i];}        else { switch(a){        case 0:{break;}        case 1:{zhongjianshuju[i]=zhongjianshuju[i-1]+shuju[i];a=0;break;}        case 2:{zhongjianshuju[i]=zhongjianshuju[i-1]-shuju[i];a=0;break;}        case 3:{zhongjianshuju[i]=zhongjianshuju[i-1]*shuju[i];a=0;break;}        case 4:{zhongjianshuju[i]=zhongjianshuju[i-1]/shuju[i];a=0;break;}        }}    a=2;    b=0;    SJ.setText("-");    i++;    }    public void pressMuti(){    if(b==1){shuju[i] = Double.parseDouble(zifushuju);}        if(i==0){zhongjianshuju[i]=shuju[i];}        else {switch(a){        case 0:{break;}        case 1:{zhongjianshuju[i]=zhongjianshuju[i-1]+shuju[i];a=0;break;}        case 2:{zhongjianshuju[i]=zhongjianshuju[i-1]-shuju[i];a=0;break;}        case 3:{zhongjianshuju[i]=zhongjianshuju[i-1]*shuju[i];a=0;break;}        case 4:{zhongjianshuju[i]=zhongjianshuju[i-1]/shuju[i];a=0;break;}        }}    a=3;    b=0;    SJ.setText("*");    i++;    }       public void pressDivide(){     if(b==1){shuju[i] = Double.parseDouble(zifushuju);}    if(i==0){zhongjianshuju[i]=shuju[i];}    else {switch(a){    case 0:{break;}    case 1:{zhongjianshuju[i]=zhongjianshuju[i-1]+shuju[i];a=0;break;}    case 2:{zhongjianshuju[i]=zhongjianshuju[i-1]-shuju[i];a=0;break;}    case 3:{zhongjianshuju[i]=zhongjianshuju[i-1]*shuju[i];a=0;break;}    case 4:{zhongjianshuju[i]=zhongjianshuju[i-1]/shuju[i];a=0;break;}    }}    a=4;    b=0;    SJ.setText("/");    i++;    }     public void pressEnter(){    if(b==0){    if(i==0){daan=shuju[i];}    else{    switch(a){        case 0:{break;}        case 1:{zhongjianshuju[i]=zhongjianshuju[i-1]+shuju[i];a=0;break;}        case 2:{zhongjianshuju[i]=zhongjianshuju[i-1]-shuju[i];a=0;break;}        case 3:{zhongjianshuju[i]=zhongjianshuju[i-1]*shuju[i];a=0;break;}        case 4:{zhongjianshuju[i]=zhongjianshuju[i-1]/shuju[i];a=0;break;}        }    daan=zhongjianshuju[i];}    }    if(b==1){    shuju[i] = Double.parseDouble(zifushuju);    if(i==0){daan=shuju[i];}    else{    switch(a){        case 0:{break;}        case 1:{zhongjianshuju[i]=zhongjianshuju[i-1]+shuju[i];a=0;break;}        case 2:{zhongjianshuju[i]=zhongjianshuju[i-1]-shuju[i];a=0;break;}        case 3:{zhongjianshuju[i]=zhongjianshuju[i-1]*shuju[i];a=0;break;}        case 4:{zhongjianshuju[i]=zhongjianshuju[i-1]/shuju[i];a=0;break;}        }    daan=zhongjianshuju[i];}    }        DA.setText(""+daan);        shuju=new double[99];        zhongjianshuju=new double[99];        shuju[0]=0;        i=0;        b=0;    }     public void pressBackspace(){    shuju[i]=0;    SJ.setText(""+shuju[i]);    }public static void main(String[] args) {new Calculator();  }}

原创粉丝点击