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

📄 qqqq.java

📁 用Java做的计算器
💻 JAVA
字号:
import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.TextField;

public abstract class qqqq extends Applet {
    private TextField tfAnswer;//计算器的显示文本框
    private Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;//数字0~9的按钮
    //下面定义小数点、等于号、加、减、清零、乘和除等按钮
    private Button bPoint,bEqual,bPlus,bMinus,bClear,bMulti,bDivision;
    private String OperatorCurrent,OperatorPre;//OperatorCurrent表示当前的运算符号.OperatorPre表示上一次的运算符号
    private String ForeScreen,BackScreen;     //ForeScreen表示当前显示的字符。BackScreen表示上一次显示的字符
    private boolean isFloat=false;
    //以下是类的初始化函数
    public void init()
    {
        //下面将OperatorCurrent、OperatorPre初始化为空字符串
        OperatorCurrent=new String("");
        OperatorPre=new String("");
        //再将ForeScreen、BackScreen初始化为空字符串
        ForeScreen=new String("");
        BackScreen=new String("");
        this.setBackground(Color.BLUE);//设置背景颜色
        this.setForeground(Color.red);//设置前景颜色
        
        setLayout(null);
        tfAnswer=new TextField();
        tfAnswer.setBounds(5,5,100,20);
        this.add(tfAnswer);      //添加用于显示的文本框
        
        bClear=new Button("C");
        bClear.setBounds(5,30,20,20);
        bClear.setBackground(Color.GREEN);
        this.add(bClear);           //添加‘C’按键
        
        bDivision=new Button("/");
        bDivision.setBounds(30,30,20,20);
        bDivision.setBackground(Color.pink);
        this.add(bDivision);//添加'/'按键
        
        bMulti=new Button("*");
        bMulti.setBounds(55,30,20,20);
        bDivision.setBackground(Color.pink);
        this.add(bMulti);
        
        bMinus=new Button("-");
        bMinus.setBounds(80,30,20,20);
        bDivision.setBackground(Color.pink);
        this.add(bMinus);
        
        bPlus=new Button("+");
        bPlus.setBounds(80,55,20,45);
        bDivision.setBackground(Color.pink);
        this.add(bPlus);
        
        b0=new Button("0");
        b0.setBounds(5,130,45,20);
        this.add(b0);
        
        bPoint=new Button(".");
        bPoint.setBounds(55,130,20,20);
        this.add(bPoint);
        
        bEqual=new Button("=");
        bEqual.setBounds(80,105,20,45);
        this.add(bEqual);
        
        b1=new Button("1");
        b1.setBounds(5,105,20,20);
        this.add(b1);
        
        b2=new Button("2");
        b2.setBounds(30,105,20,20);
        this.add(b2);
        
        b3=new Button("3");
        b3.setBounds(55,105,20,20);
        this.add(b3);
        
        b4=new Button("4");
        b4.setBounds(5,80,20,20);
        this.add(b4);
        
        b5=new Button("5");
        b5.setBounds(30,80,20,20);
        this.add(b5);
        
        b6=new Button("6");
        b6.setBounds(55,80,20,20);
        this.add(b6);
        
        b7=new Button("7");
        b7.setBounds(5,55,20,20);
        this.add(b7);
        
        b8=new Button("8");
        b8.setBounds(30,55,20,20);
        this.add(b8);
        
        b9=new Button("9");
        b9.setBounds(55,55,20,20);
        this.add(b9);
        
    }
    /**
     * @param blue
     */
    //下面添加按键点击事件的处理函数
   public boolean action(Event e,Object o)
    {
        String s=new String("");
        if(e.target instanceof Button);
        {
            if((e.target==b0)||(e.target==b1)||(e.target==b2)||
                    (e.target==b3)||(e.target==b4)||(e.target==b5)||
                    (e.target==b6)||(e.target==b7)||(e.target==b8)||
                    (e.target==b9)||(e.target==bPoint))
            {
                if(e.target!=bPoint)
                {
                    s=(String)o;
                    System.out.print(s);
                    doForeScreen(s);   //在显示文本框显示相应的数字
                 }
                if((e.target==bPoint)&&(!isFloat))
                {
                    isFloat=true;
                    s=(String)o;
                    
                    if(ForeScreen.equals(""))
                    {
                        ForeScreen+="0.";
                        repaint();
                    }
                    else
                    {
                        System.out.print(s);
                        doForeScreen(s);
                    }
                }
             }
            
            if(e.target==bClear)
            {
             doClear();  //清空文本框 
            }
            
            if((e.target==bMulti)||(e.target==bDivision)||(e.target==bPlus)||(e.target==bMinus))
            {
                if(ForeScreen!="")
                {
                   OperatorCurrent=((String)o);
                   doOperator();
                   System.out.print((String)o);
                }
                else
                {
                    OperatorPre=((String)o);//将运算符保存为前一次的运算符变量中
                }
            }
            
            if(e.target==bEqual)
            {
                doOperator();
            }
          }
        return true;
    }
    
    /**
     * 
     */
    public void doOperator() {
        double dFore,dBack;//dFore保存当前数值,dBack保存前一次的数值
        Double d;
        if(OperatorPre.equals(""))
        {
            BackScreen=ForeScreen;
            ForeScreen="";
            tfAnswer.setText(BackScreen);
            repaint();
        }
        else
        {
            dFore=(new Double(ForeScreen)).doubleValue();
            dBack=(new Double(BackScreen)).doubleValue();
            ForeScreen="";
            BackScreen=tfAnswer.getText();
            if(OperatorPre.equals("+"))
            {
                d=new Double((dBack+dFore));
                tfAnswer.setText(d.toString());
                BackScreen=d.toString();
                repaint();
            }
            if(OperatorPre.equals("-"))
            {
                d=new Double((dBack-dFore));
                tfAnswer.setText(d.toString());
                BackScreen=d.toString();
                repaint();
            }
            if(OperatorPre.equals("*"))
            {
                d=new Double((dBack*dFore));
                tfAnswer.setText(d.toString());
                BackScreen=d.toString();
                repaint();
            }
            if(OperatorPre.equals("/"))
            {
                d=new Double((dBack/dFore));
                tfAnswer.setText(d.toString());
                BackScreen=d.toString();
                repaint();
            }
        }
        OperatorPre=OperatorCurrent;
        repaint();
    }
    public void repaint(Graphics g)
    {
        
   }
    public void doClear() {
        OperatorCurrent="";
        OperatorPre="";
        ForeScreen="";
        BackScreen="";
        
        isFloat=false;
        tfAnswer.setText(ForeScreen);
        repaint();   
    }

    public void doForeScreen(String s) {
        ForeScreen+=s;
        tfAnswer.setText(ForeScreen);
        repaint();
    }
    public void doBackScreen(String s)
    {
        BackScreen=ForeScreen;
        ForeScreen="";
        tfAnswer.setText(ForeScreen);
        repaint();
    }
 /*   public static void main(String[] args) {
        
    }*/
}

⌨️ 快捷键说明

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