//摸版没搞,大概只有本人能读!!
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.Math;
public class test extends JFrame{
 static int count=0,all=0,but;
 static String fuhao,output="";
 private JLabel promptLabel;
 protected static JTextField inputField;
 private JTextArea outputArea;
 private JButton j0,j1,j2,j3,j4,j5,j6,j7,j8,j9,x1,x2,y1,y2,s1,s2;
 static int cont[]=new int[9];
 static int paixu[]=new int[50];
 
 
  
  
  public test(){
   super("ceshi StringTokenizer");
   Container container=getContentPane();
   container.setLayout(new FlowLayout());
   
   promptLabel=new JLabel("计算器");
   container.add(promptLabel);
   inputField=new JTextField(20);
   
   
   
   
   inputField.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     StringTokenizer tokens=new StringTokenizer(event.getActionCommand());
     
     outputArea.setText("Number of elements"+tokens.countTokens()+"\nThe tokens are:\n");
     
     while(tokens.hasMoreTokens())
     outputArea.append(tokens.nextToken()+"\n");
    }
   });
   
   container.add(inputField);
   
   j1=new JButton("1");
   j2=new JButton("2");
   j3=new JButton("3");
   
   x1=new JButton("*");
   x2=new JButton("/");
   
   j4=new JButton("4");
   j5=new JButton("5");
   j6=new JButton("6");
   
   y1=new JButton("+");
   y2=new JButton("-");
   j7=new JButton("7");
   j8=new JButton("8");
   j9=new JButton("9");
   s1=new JButton("=");
   j0=new JButton("0");
 //1--------------  
   j1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     
     count++;
     paixu(1);
     output+=paixu[count];
     inputField.setText(output);
   
     
     
    }
   });
 //2--------------  
   j2.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(2);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
 //3--------------  
   j3.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(3);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
//4-----------   
   j4.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(4);
      output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
 //5--------------
 j5.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(5);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
   
   //6---------------------
   j6.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(6);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
   
   //7----------------------
   j7.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(7);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
   
   //8------------
   j8.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(8);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
   
   //9-------------------
   j9.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(9);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
   
   //0-----------------------
   j0.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(0);
    output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
   
 //+-----------  but第二个数组的记录
   y1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
    fuhao="+";
     cont[but]=Integer.parseInt(output.trim());//去掉空格
    count=0;
    but++;
    output="";
    
         
    }
   });
//- ---------------   
   y2.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
  
    fuhao="-";
    cont[but]=Integer.parseInt(output.trim());//去掉空格
    count=0;
    but++;
    output="";
         
    }
   });
   
// *---------------   
   x1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
  
    fuhao="*";
    cont[but]=Integer.parseInt(output.trim());//去掉空格
    count=0;
    but++;
    output="";
         
    }
   });
   
// / ---------------   
   x2.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
  
    fuhao="/";
    cont[but]=Integer.parseInt(output.trim());//去掉空格
    count=0;
    but++;
    output="";
         
    }
   });      
//= --------------------   
   s1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     cont[but]=Integer.parseInt(output.trim());
    
     if(fuhao=="+")//+
  {   cont[1]=cont[0]+cont[1];
      String All="";
      All+=cont[1];
     inputField.setText(All);
     output=All; //第N次运算保留
     }  
       
    else    if(fuhao=="-")//-
  {   cont[1]=cont[0]-cont[1];
      String All="";
      All+=cont[1];
     inputField.setText(All);
     output=All;
     
     
     }  
  else   if(fuhao=="*")//*
  {   cont[1]=cont[0]*cont[1];
      String All="";
      All+=cont[1];
     inputField.setText(All);
     output=All;
     }    
  else   if(fuhao=="/")// /
  {   cont[1]=cont[0]/cont[1];
      String All="";
      All+=cont[1];
     inputField.setText(All);
     output=All;
     }   
 //清零    
     count=0; 
     but-=1;  
//     output="";
   }
   });
   
   container.add(j9);
   container.add(j8);
   container.add(j7);
   
   container.add(x1);
   container.add(x2);
   
   container.add(j6);
   container.add(j5);
   container.add(j4);
   
   container.add(y1);
   container.add(y2);
   
   container.add(j3);
   container.add(j2);
   container.add(j1);
   container.add(j0);
   
   container.add(s1);
   
  math(); 
   
   
   
   
   outputArea=new JTextArea(10,18);
   outputArea.setEditable(false);
   
   container.add(new JScrollPane(outputArea));
   
   
   
   setSize(275,500);
   setVisible(true);
   
  }
   public static void main(String args[]){
   test application=new test();
   application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  
   //堆栈-------------------------
  private void paixu(int button){
   
   paixu[count]=button;
   
  }
  //Math涵数按钮引入
  private void math(){
   //加入涵数按钮
   Mathhanshu hanshu=new Mathhanshu();
    Container container=getContentPane();
   container.add(hanshu.sin1);
   container.add(hanshu.cos1);
   container.add(hanshu.tan1);
   container.add(hanshu.tozero);
   
  }
}
//Math涵数按钮
class Mathhanshu {
 protected Button sin1,cos1,tan1,tozero;
 public  Mathhanshu(){
  sin1=new Button("sin");
  cos1=new Button("cos");
  tan1=new Button("tan");
  tozero=new Button("清零");
  
   ActionListener listener= new TT();
  
  sin1.addActionListener(listener);
  cos1.addActionListener(listener);
  tan1.addActionListener(listener);
  tozero.addActionListener(listener);
 }
 
  class TT implements ActionListener{
    public void actionPerformed(ActionEvent event){
         if(sin1==event.getSource())
      {   
          test.inputField.setText(test.output);}
         
         if(cos1==event.getSource())
         ;
         if(tan1==event.getSource())
         ;
         if(tozero==event.getSource())
         ;
         
    }
   }    
}

评论