⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculator .java

📁 这是我自己用JAVA编写的计算器
💻 JAVA
字号:
 import java.awt.*;
 import java.awt.event.*;

 class Calculator extends Frame implements ActionListener
{
  TextField tResult;               //结果文本字段
  Panel faceCalculator,panel;      //计数器面板
Button button0,button1,button2,button3,button4;
  Button button5,button6,button7,button8,button9;
  Button buttonPoint,buttonAdd,buttonMul;
  Button buttonResult,buttonDiv,buttonSub;

  TextArea tFormula;               //表达式输出文本域
  
  Menu menu;                       //清零菜单
  MenuItem menuItem;
  
  
    float first,second,third,n;      
  char oper1,oper2;
  boolean readyoper1,readyoper2,point;
  
  int count;                      //记录小数点后的位数!
  
  
  public Calculator(){           //构造函数
    point=false;
    readyoper1=readyoper2=false;
    count=1;
    init();               //初始化计数器面板
  }
  void init(){
    MenuBar menuBar=new MenuBar();
    panel=new Panel();
    tResult=new TextField("0",40);
    this.setLayout(new BorderLayout());
    this.setTitle("计算机0105-刘雪棉");
    panel.add(tResult);
    this.add(panel,"North");
    faceCalculator=new Panel();
    faceCalculator.setLayout(new GridLayout(4,4));
    button0=new Button("0");button0.addActionListener(this);
    button1=new Button("1");button1.addActionListener(this);
    button2=new Button("2");button2.addActionListener(this);
    button3=new Button("3");button3.addActionListener(this);
    button4=new Button("4");button4.addActionListener(this);
    button5=new Button("5");button5.addActionListener(this);
    button6=new Button("6");button6.addActionListener(this);
    button7=new Button("7");button7.addActionListener(this);
    button8=new Button("8");button8.addActionListener(this);
    button9=new Button("9");button9.addActionListener(this);
    buttonPoint=new Button(".");buttonPoint.addActionListener(this);
    buttonAdd=new Button("+");buttonAdd.addActionListener(this);
    buttonSub=new Button("-");buttonSub.addActionListener(this);
    buttonMul=new Button("*");buttonMul.addActionListener(this);
    buttonDiv=new Button("/");buttonDiv.addActionListener(this);
    buttonResult=new Button("=");buttonResult.addActionListener(this);
    faceCalculator.add(button7);
    faceCalculator.add(button8);
    faceCalculator.add(button9);
    faceCalculator.add(buttonDiv);
    faceCalculator.add(button4);
    faceCalculator.add(button5);
    faceCalculator.add(button6);
    faceCalculator.add(buttonMul);
    faceCalculator.add(button1);
    faceCalculator.add(button2);
    faceCalculator.add(button3);
    faceCalculator.add(buttonSub);
    faceCalculator.add(button0);
    faceCalculator.add(buttonPoint);
    faceCalculator.add(buttonResult);
    faceCalculator.add(buttonAdd);
    this.add(faceCalculator,"Center");
    tFormula=new TextArea(3,50);
    this.add(tFormula,"South");
    
    menu=new Menu("控制");
    menuItem=new MenuItem("清零");
    menuItem.addActionListener(this);
    menu.add(menuItem);
    menuBar.add(menu);
    this.setMenuBar(menuBar);
    
    
    this.setSize(300,300);
    this.setResizable(false);
    this.show();
  }
  
  public void addNum(float ch){            //输入多位数
    if(!point){
      n=n*10+ch;
    }
    else{
      for(int i=0;i<count;i++) ch=ch/10;
      n=n+ch;
      count++;
    }
  }

  public float sum(float a,float b,char oper){//根据运算符计算两个操作数    
    switch(oper){
    case '+':a=a+b;break;
    case '-':a=a-b;break;
    case '*':a=a*b;break;
    case '/':a=a/b;break;
            
      }
  return a;
    }
  
  
  public void actionPerformed(ActionEvent e){//事件处理器
    int a=0;
    if(e.getSource()==button0)   {a=0;addNum(a);}
    else if(e.getSource()==button1) {a=1;addNum(a);}
    else if(e.getSource()==button2) {a=2;addNum(a);}
    else if(e.getSource()==button3) {a=3;addNum(a);}
    else if(e.getSource()==button4) {a=4;addNum(a);}
    else if(e.getSource()==button5) {a=5;addNum(a);}
    else if(e.getSource()==button6) {a=6;addNum(a);}
    else if(e.getSource()==button7) {a=7;addNum(a);}
    else if(e.getSource()==button8) {a=8;addNum(a);}
    else if(e.getSource()==button9) {a=9;addNum(a);}             
      else if(e.getSource()==buttonPoint) {a='.';point=true;}
      else {
        point=false;
        count=1;
        if(readyoper2){
          third=n;
          second=sum(second,third,oper2);
          readyoper2=false;
        }
        else if(readyoper1){
          second=n;          
        }
      else first=n;
      n=0;
    }
    if(e.getSource()==buttonAdd) {
      a='+';
      if(readyoper1)
      first=sum(first,second,oper1);
      oper1='+';
      readyoper1=true;
    }
    else if(e.getSource()==buttonSub) {
      a='-';
      if(readyoper1)
      first=sum(first,second,oper1);
      oper1='-';
      readyoper1=true;
    }
    else if(e.getSource()==buttonMul)
    {
      a='*';
      if(readyoper1){
        if(oper1=='+'||oper1=='-')  {readyoper2=true; oper2='*';}
        else {first=sum(first,second,oper1);oper1='*';}
        }
      else{
        readyoper1=true;
        oper1='*';
      }
    }else if(e.getSource()==buttonDiv){
      a='/';
      if(readyoper1){
        if(oper1=='+'||oper1=='-')  {readyoper2=true; oper2='/';}
        else {first=sum(first,second,oper1);oper1='/';}
        }
      else{
        readyoper1=true;
        oper1='/';
      }

    }else if(e.getSource()==buttonResult){
      a='=';
      first=sum(first,second,oper1);
      tResult.setText("="+first); 
    }
    if(e.getSource()==menuItem){
    readyoper1=readyoper2=false;
    point=false;
    count=1;
    tResult.setText("0");
    tFormula.setText("");
    }
        else if(a>9)
            tFormula.append(""+(char)a);
    else
        tFormula.append(""+a);
    if(a=='=')tFormula.append(""+first);
  }

         
  public static void main(String[] args){
    Calculator calculator=new Calculator();
    calculator.addWindowListener(new WindowAdapter(){
      public void windowClosing(WindowEvent e){
        System.exit(0);
      }
    });
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -