参考一下吧:
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;public class AwtCalc extends Frame implements ActionListener
{  private  Button[] buttons=new Button[20];
  private String[] buttonText={"1","2","3","+","-","4","5","6","*",
               "/","7","8","9","^","sqrt","C","0",".","%","="};
  private EtextField result; //结果显示框
  private Label label;
  private Color forecolor,backcolor,fieldcolor;
  private Font font ,buttonfont;
  int operation,LastButtonType;
  int OnScreen,OutOfScreen; public AwtCalc(){
super("计算器");
setBackground(Color.lightGray);
setSize(270,200);

    
    font=new Font("Courier",font.ITALIC,12);
    buttonfont=new Font("Courier",font.PLAIN,12);
     
     result=new EtextField(125,18);
     label=new Label ("The Result");
     setLayout(new FlowLayout());
     //初始化按钮
     Panel mainpanel=new Panel();
     mainpanel.setLayout(new GridLayout(5,1));
     for( int i=0;i<20;i++)
     {
      buttons[i]=new Button (buttonText[i]);
        buttons[i].setFont(buttonfont);
        buttons[i].addActionListener(this);
     }
     Panel panel1=new Panel();
     panel1.add(result);
     panel1.add(label);
     mainpanel.add(panel1);
     
     Panel panel2=new Panel();
      panel2.setLayout(new GridLayout(1,5,5,5));
      panel2.add(buttons[0]);
      panel2.add(buttons[1]);
      panel2.add(buttons[2]);
      panel2.add(new Label(" "));
      panel2.add(buttons[3]);
      panel2.add(buttons[4]);
      mainpanel.add(panel2);
      
      Panel panel3=new Panel();
      panel3.setLayout(new GridLayout(1,5,5,5));
      panel3.add(buttons[5]);
      panel3.add(buttons[6]);
      panel3.add(buttons[7]);
      panel3.add(new Label(" "));
      panel3.add(buttons[8]);
      panel3.add(buttons[9]);
      mainpanel.add(panel3);
      
      Panel panel4=new Panel();
      panel4.setLayout(new GridLayout(1,5,5,5));
      panel4.add(buttons[10]);
      panel4.add(buttons[11]);
      panel4.add(buttons[12]);
      panel4.add(new Label(" "));
      panel4.add(buttons[13]);
      panel4.add(buttons[14]);
      mainpanel.add(panel4);
      
      Panel panel5=new Panel();
      panel5.setLayout(new GridLayout(1,5,5,5));
     // panel5.setLayout(new FlowLayout(FlowLayout.CENTER,2,2));
      // panel5.reshape(100,55,160,130);
      panel5.add(buttons[15]);
      panel5.add(buttons[16]);
      panel5.add(buttons[17]);
      panel5.add(new Label(" "));
      panel5.add(buttons[18]); 
      panel5.add(buttons[19]);
      mainpanel.add(panel5);
      
      add("Center",mainpanel);
      
      buttons[15].setForeground(Color.red);
      result.setBackground(Color.white);
      show(); 
      addWindowListener(new WindowAdapter(){
       public void windowClosing(WindowEvent e){
       System.exit(0);
       }
      });
}
  public void actionPerformed (ActionEvent e){
  
    String str=e.getActionCommand();
      if (str.equals("C"))
        resetCalc();
      else if (str.equals("+"))
        setoperation(1);
      else if (str.equals("-"))
        setoperation(2);
      else if (str.equals("*"))
        setoperation(3);
      else if(str.equals("/"))
        setoperation(4);
      else if(str.equals("="))
        doOperation();
      else if(str.equals("^"))
        doOperation();
      else if(str.equals("sqrt"))
        doOperation();
      else if(str.equals("%"))
        doOperation();
      else if(str.equals("."))
        doOperation();
      else{
           if(LastButtonType==0)
           OnScreen=OnScreen*10+Integer.valueOf(str).intValue();
           else
                  OnScreen= Integer.valueOf(str).intValue();
          }
         result.setText(String.valueOf(OnScreen));
         
         }            
      
      
     public void resetCalc(){
   LastButtonType=0;
   OnScreen=0;
   operation=0;
   OutOfScreen=0;
   }
  
    public void setoperation(int op)
     {
     operation=op;
     LastButtonType=op;
     OutOfScreen=OnScreen;
     }
  
    public  void doOperation()
     { 
        int temp=0;
         switch (operation)
         {
          case 1:
            temp=OnScreen+OutOfScreen;
            break;
           case 2:
             temp=OnScreen-OutOfScreen;
            break;
           case 3:
             temp=OnScreen*OutOfScreen;
             break;
            case 4:
             temp=OnScreen/OutOfScreen;
             break;
           }
          OutOfScreen=OnScreen;
          OnScreen=temp;
          }
                    
    public void paint(Graphics g)
   {
    g.drawRect(0,0,getSize().width-1,getSize().height-1);
    g.drawLine(0,0,0,getSize().height);
    }
   
   public static void main(String[] args){
    AwtCalc ca=new AwtCalc();
   
   }
  }