简易计算器(JAVA)

import java.applet.Applet;   
import java.awt.BorderLayout;
import java.awt.Button;   
import java.awt.Color;    
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;   
import java.awt.event.ActionEvent;   
import java.awt.event.ActionListener;   
  
 
public class Calculator2 extends Applet implements ActionListener   
{   
    private TextField input = new TextField("",30);   
    private Button backSpace = new Button("BackSpace");   
    private Button CE = new Button("CE");   
    private Button C = new Button("C");    
    private Button num7 = new Button("7");   
    private Button num8 = new Button("8");   
    private Button num9 = new Button("9");       
    private Button num4 = new Button("4");   
    private Button num5 = new Button("5");   
    private Button num6 = new Button("6");   
    private Button num1 = new Button("1");   
    private Button num2 = new Button("2");   
    private Button num3 = new Button("3");   
    private Button num0 = new Button("0");   
    private Button decimal = new Button(".");
   
    private Button plus = new Button("+");
    private Button subtract = new Button("-");  
    private Button multiply = new Button("*");
    private Button division = new Button("/");
    private Button amount = new Button(" =  ");   
       
    private StringBuffer str=new StringBuffer();   
    double x,y;   
    int operator; //用于判断加减乘除等符号      
      
    public void init()   
    { 
     resize(255,255); 
     Panel panel1=new Panel();
     Panel panel2=new Panel();
     Panel panel3=new Panel();

        panel2.add(backSpace);   
        backSpace.setForeground(new Color(255,0,0));   
        backSpace.addActionListener(this);   
        panel2.add(CE);   
        CE.setForeground(new Color(255,0,0));   
        CE.addActionListener(this); 
        panel2.add(C);   
        C.setForeground(new Color(255,0,0));   
        C.addActionListener(this);
        panel1.setLayout(new BorderLayout());
        panel1.add("North",input);
        panel1.add("Center",panel2);
       
        panel3.setLayout(new GridLayout(4,4));
        panel3.add(num7);   
        num7.setForeground(new Color(0,0,255));   
        num7.addActionListener(this);   
        panel3.add(num8);   
        num8.setForeground(new Color(0,0,255));   
        num8.addActionListener(this);   
        panel3.add(num9);   
        num9.setForeground(new Color(0,0,255));   
        num9.addActionListener(this);
        panel3.add(plus);   
        plus.setForeground(new Color(255,0,0));   
        plus.addActionListener(this);
         
        panel3.add(num4);   
        num4.setForeground(new Color(0,0,255));   
        num4.addActionListener(this);   
        panel3.add(num5);   
        num5.setForeground(new Color(0,0,255));   
        num5.addActionListener(this);   
        panel3.add(num6);   
        num6.setForeground(new Color(0,0,255));   
        num6.addActionListener(this);
        panel3.add(subtract);   
        subtract.setForeground(new Color(255,0,0));   
        subtract.addActionListener(this); 
          
        panel3.add(num1);   
        num1.setForeground(new Color(0,0,255));   
        num1.addActionListener(this);   
        panel3.add(num2);   
        num2.setForeground(new Color(0,0,255));   
        num2.addActionListener(this);   
        panel3.add(num3);   
        num3.setForeground(new Color(0,0,255));   
        num3.addActionListener(this);
        panel3.add(multiply);   
        multiply.setForeground(new Color(255,0,0));   
        multiply.addActionListener(this); 
 
        panel3.add(num0);   
        num0.setForeground(new Color(0,0,255));    
        num0.addActionListener(this);       
        panel3.add(decimal);   
        decimal.setForeground(new Color(0,0,255));   
        decimal.addActionListener(this);        
        panel3.add(amount);   
        amount.setForeground(new Color(0,0,255));   
        amount.addActionListener(this); 
        setLayout(new BorderLayout());
        panel3.add(division);   
        division.setForeground(new Color(255,0,0));   
        division.addActionListener(this);
        add("North",panel1);
        add("Center",panel3); 
    }   
   
    public void actionPerformed(ActionEvent e)    
    {   
         if(e.getSource()==plus)   
         {   
             x=Double.parseDouble(input.getText().trim());   
             str.setLength(0);
             operator=0;   
         }   
         else if(e.getSource()==subtract)   
         {   
             x=Double.parseDouble(input.getText().trim());   
             str.setLength(0);   
             operator=1;   
         }   
         else if(e.getSource()==multiply)   
         {   
             x=Double.parseDouble(input.getText().trim());   
             str.setLength(0);   
             operator=2;   
         }   
         else if(e.getSource()==division)   
         {   
             x=Double.parseDouble(input.getText().trim());   
             str.setLength(0);   
             operator=3;   
         } 
         else if(e.getSource()==backSpace)   
         {   
          String s = input.getText();
          input.setText("");
          str.setLength(s.length() - 1);
             for (int i = 0; i < s.length() - 1; i++) {
               char a = s.charAt(i);
               input.setText(input.getText() + a);     
             }
         }
         else if(e.getSource()==CE)   
         {  
          input.setText("");
             //x=Double.parseDouble(input.getText().trim());   
             str.setLength(0);       
         }   
    
         else if(e.getSource()==C)   
         {   
          input.setText("");   
             str.setLength(0);
             x=0;
         }   
         else if(e.getSource()==amount)   
         {   
             str.setLength(0);   
             switch(operator)   
             {   
                 case 0:input.setText(""+(x+y));break;   
                 case 1:input.setText(""+(x-y));break;   
                 case 2:input.setText(""+(x*y));break;   
                 case 3:input.setText(""+(x/y));break;                  
             }   
         }
 
         else  
         {   
             input.setText(str.append(e.getActionCommand()).toString());   
             y=Double.parseDouble(input.getText().trim());   
         }   
    }   
}   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值