Java简单计算器实现方法

import javax.swing.*;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class MainTest{

    JFrame frame; //顶级窗口
    JPanel panel1; //panel1
    JTextField textField; //文本框
    JPanel panel2; //panel2
    JButton[] buttons; //按钮数组
    String[] str;
    int[]  sum;
    int n=0,m=0,p=0;
   
    public static void main(String[] args){
        MainTest glt = new MainTest();
        glt.go();
    }
   
    public void go(){
        frame = new JFrame(); //生成顶级窗口
        panel1 = new JPanel(); //生成panel1
        textField = new JTextField(20); //生成textfield
       
        panel1.add(textField); //把文本框增加到panel1中
        frame.getContentPane().add(panel1,BorderLayout.NORTH); //把panel1增加到frame

        panel2 = new JPanel(); //panel2
        panel2.setLayout(new GridLayout(3,5,4,4)); //设置panel2为Grid布局
        String[] name = {"0","1","2","3","4","5","6","7","8","9",
            "+","-","*","/","="}; //生成字符串数组,做为button上面的文字
        buttons = new JButton[name.length]; //生成button数组,便于统一管理
        str=new String[name.length];
       
        sum=new int[name.length];
        //用循环,开始对号入座,把字符串的值分配给新生成的button
        for(int i = 0; i < name.length; i++){  
            buttons[i] = new JButton(name[i]);
            panel2.add(buttons[i]);
        }

        for (int i=0;i<name.length;i++){
            if (name[i].equals("0")){
                buttons[i].addActionListener(new TextActionListener0());
            }
            if (name[i].equals("1")){
                buttons[i].addActionListener(new TextActionListener1());
            }
            if (name[i].equals("2")){
                buttons[i].addActionListener(new TextActionListener2());
            }
            if (name[i].equals("3")){
                buttons[i].addActionListener(new TextActionListener3());
            }
            if (name[i].equals("4")){
                buttons[i].addActionListener(new TextActionListener4());
            }
            if (name[i].equals("5")){
                buttons[i].addActionListener(new TextActionListener5());
            }
            if (name[i].equals("6")){
                buttons[i].addActionListener(new TextActionListener6());
            }
            if (name[i].equals("7")){
                buttons[i].addActionListener(new TextActionListener7());
            }
            
            if (name[i].equals("8")){
                buttons[i].addActionListener(new TextActionListener8());
            }
            if (name[i].equals("9")){
                buttons[i].addActionListener(new TextActionListener9());
            }
            if (name[i].equals("+")){
                buttons[i].addActionListener(new TextActionListener10());
            }
            if (name[i].equals("-")){
                buttons[i].addActionListener(new TextActionListener11());
            }
            if (name[i].equals("*")){
                buttons[i].addActionListener(new TextActionListener12());
            }
            if (name[i].equals("/")){
                buttons[i].addActionListener(new TextActionListener13());
            }
            if (name[i].equals("=")){
                buttons[i].addActionListener(new TextActionListener14());
            }
        }
       
        frame.getContentPane().add(panel2,BorderLayout.SOUTH);//把panel2增加到frame
        frame.setSize(300,300);
        frame.pack();
        frame.setVisible(true);
    }
      class TextActionListener0 implements ActionListener{

        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            textField.setText("0");
            sum[n]=0;
            n=n+1;
            
        }
    }
      class TextActionListener1 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
              textField.setText("1");
            sum[n]=1;
            n=n+1;
          }
      }
      class TextActionListener2 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
              textField.setText("2");
            sum[n]=2;
            n=n+1;
          }
      }
      class TextActionListener3 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
              textField.setText("3");
            sum[n]=3;
            n=n+1;
          }
      }
      class TextActionListener4 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
              textField.setText("4");
            sum[n]=4;
            n=n+1;
          }
      }
      class TextActionListener5 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
              textField.setText("5");
            sum[n]=5;
            n=n+1;
          }
      }
      class TextActionListener6 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
              textField.setText("6");
            sum[n]=6;
            n=n+1;
          }
      }
      class TextActionListener7 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
              textField.setText("7");
            sum[n]=7;
            n=n+1;
          }
      }
      class TextActionListener8 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
              textField.setText("8");
            sum[n]=8;
            n=n+1;
          }
      }
      class TextActionListener9 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
              textField.setText("9");
              sum[n]=9;
            n=n+1;
          }
      }
      class TextActionListener10 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
              textField.setText("+");
            str[m]="+";
            m=m+1;
            if (m>1){
                if (str[m-1].equals("+")){
                    sum[p+1]=sum[p]+sum[p+1];
                    
                   }
                    if (str[m-1].equals("-")){
                        sum[p+1]=sum[p]-sum[p+1];
                    
                    }
                    if (str[m-1].equals("*")){
                        sum[p+1]=(sum[p])*(sum[p+1]);
                    
                    }
                    if (str[m-1].equals("/")){
                        sum[p+1]=(sum[p])/(sum[p+1]);
                
                    }
                    p=p+1;
                    textField.setText(String.valueOf(sum[p]));
                    System.out.println(sum[p]);
            }
          }
      }
      class TextActionListener11 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
              textField.setText("-");
            str[m]="-";
            m=m+1;
            if (m>1){
                if (str[m-1].equals("+")){
                    sum[p+1]=sum[p]+sum[p+1];
                    
                   }
                    if (str[m-1].equals("-")){
                        sum[p+1]=sum[p]-sum[p+1];
                    
                    }
                    if (str[m-1].equals("*")){
                        sum[p+1]=(sum[p])*(sum[p+1]);
                    
                    }
                    if (str[m-1].equals("/")){
                        sum[p+1]=(sum[p])/(sum[p+1]);
                
                    }
                    p=p+1;
                    textField.setText(String.valueOf(sum[p]));
                    System.out.println(sum[p]);
            }
          }
      }
      class TextActionListener12 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
              textField.setText("*");
            str[m]="*";
            m=m+1;
            if (m>1){
                if (str[m-1].equals("+")){
                    sum[p+1]=sum[p]+sum[p+1];
                    
                   }
                    if (str[m-1].equals("-")){
                        sum[p+1]=sum[p]-sum[p+1];
                    
                    }
                    if (str[m-1].equals("*")){
                        sum[p+1]=(sum[p])*(sum[p+1]);
                    
                    }
                    if (str[m-1].equals("/")){
                        sum[p+1]=(sum[p])/(sum[p+1]);
                
                    }
                    p=p+1;
                    textField.setText(String.valueOf(sum[p]));
                    System.out.println(sum[p]);
            }
          }
      }
      class TextActionListener13 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
              textField.setText("/");
            str[m]="/";
            m=m+1;
            if (m>1){
                if (str[m-1].equals("+")){
                    sum[p+1]=sum[p]+sum[p+1];
                    
                   }
                    if (str[m-1].equals("-")){
                        sum[p+1]=sum[p]-sum[p+1];
                    
                    }
                    if (str[m-1].equals("*")){
                        sum[p+1]=(sum[p])*(sum[p+1]);
                    
                    }
                    if (str[m-1].equals("/")){
                        sum[p+1]=(sum[p])/(sum[p+1]);
                
                    }
                    p=p+1;
                    textField.setText(String.valueOf(sum[p]));
                    System.out.println(sum[p]);
            }
          }
      }
      class TextActionListener14 implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {
              // TODO Auto-generated method stub
//              for (int i=0;!str[i].equals("=");i++){
//                  if (str[i].equals("+")){
//                      sum[p+1]=sum[p]+sum[p+1];
//                  }
//                  if (str[i].equals("-")){
//                      sum[p+1]=sum[p]-sum[p+1];
//                  }
//                  if (str[i].equals("*")){
//                      sum[p+1]=(sum[p])*(sum[p+1]);
//                  }
//                  if (str[i].equals("/")){
//                      sum[p+1]=(sum[p])/(sum[p+1]);
//                  }
//                  p=p+1;
//              }
//              textField.setText(String.valueOf(sum[p]));
//              System.out.println(str[0]);
//              int i=0;
//              if (str[i].equals("+")){
//                sum[p+1]=sum[p]+sum[p+1];
//                i=i+1;
//            }
            int i=0;
            if (str[i].equals("+")){
            sum[p+1]=sum[p]+sum[p+1];
            
           }
            if (str[i].equals("-")){
                sum[p+1]=sum[p]-sum[p+1];
            
            }
            if (str[i].equals("*")){
                sum[p+1]=(sum[p])*(sum[p+1]);
            
            }
            if (str[i].equals("/")){
                sum[p+1]=(sum[p])/(sum[p+1]);
        
            }
            p=p+1;
            textField.setText(String.valueOf(sum[p]));
            System.out.println(sum[p]);

//            System.out.println(sum[p]+"  "+sum[p+1]);
              
//              int i=0;
//              if (str[i].equals("+")){
//                  System.out.println(str[i]);
//                  System.out.println(sum[p]);
//                  System.out.println(sum[p+1]);
//                  System.out.println(sum[p+1]=sum[p]+sum[p+1]);
//              }
//              if (str[i].equals("-")){
//                  System.out.println(str[i]);
//                  System.out.println(sum[p]);
//                  System.out.println(sum[p+1]);
//                  System.out.println(sum[p+1]=sum[p]-sum[p+1]);
//              }
        }
      }
     
}

 

可能存在一些bug,望指正!

猜你喜欢

转载自www.cnblogs.com/SL668/p/10907979.html
今日推荐