java简易计算器

public class SimpleCalculator extends JFrame implements ActionListener {

    private String[] KEYS={"7","8","9","4","5","6","1","2","3","+","0","=","-","C"};
    private JButton keys[]=new JButton[KEYS.length];
    private JTextField resultText = new JTextField("0.0");
    private String b="";
    private String fuhao;
    public SimpleCalculator(){
        super("计算器");
        this.setLayout(null);
        resultText.setBounds(20, 5, 200, 40);
        resultText.setHorizontalAlignment(JTextField.RIGHT);
        resultText.setEditable(false);
        this.add(resultText);
        int x=20,y=55;
        for (int i=0;i<KEYS.length;i++)
        {
            keys[i] = new JButton();
            keys[i].setText(KEYS[i]);
            keys[i].setBounds(x, y, 60, 40);
            if(x<140)
            {
                x+=65;
            }
            else
            {
                x = 20;
                y+=45;
            }
            this.add(keys[i]);
        }
        for (int i = 0; i <KEYS.length; i++)
        {
            keys[i].addActionListener(this);
        }
        this.setResizable(false);
        this.setBounds(500, 200, 255, 400);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setVisible(true);
    }

    public static void main(String arg[])
    {
        SimpleCalculator a=new SimpleCalculator();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        String label = e.getActionCommand();
        if (label=="="||label=="C"||label=="-"||label=="+")
        {
            if(label=="C")
            {
                this.b="";
                resultText.setText("0");
            }else if(label=="="){
                String s[]=yunsuan(this.b);
                String result=Result(s);
                this.b=result+"";
                resultText.setText(this.b);
            }
            else
            {
                fuhao=label;
                String s[]=yunsuan(this.b);
                String result=Result(s);
                this.b=result+label;
                resultText.setText(this.b);
            }
        }
        else
        {
            this.b=this.b+label;
            resultText.setText(this.b);
        }

    }

    private String Result(String[] s) {
        if (fuhao.equals("+")){
                return plus(s);
            }
            if(fuhao.equals("-")){
                return less(s);
            }
        return null;
    }

    private String less(String[] s){
        if (
               s[1]==null
        ){
            return s[0];
        }
        return String.valueOf(Double.parseDouble(s[0])-Double.parseDouble(s[1]));
    }
    private String plus(String[] s){
        if (
                s[1]==null
        ){
            return s[0];
        }
        return String.valueOf(Double.parseDouble(s[0])+Double.parseDouble(s[1]));
    }

    private String[] yunsuan(String b) {

        String s="";
        String jieguo[]=new String[100];
        int j=0 ,a=0;
        for (int i=0;i<b.length();i++) {
            if ("0123456789.".indexOf(b.charAt(i)) >= 0) {
                s = "";
                for (; i < b.length() && "0123456789.".indexOf(b.charAt(i)) >= 0; i++) {
                    s = s + b.charAt(i);
                }
                i--;
                jieguo[j] = s;
                j++;
            }else {
                fuhao=String.valueOf(b.charAt(i));
            }
        }
        return jieguo;
    }
}
发布了103 篇原创文章 · 获赞 40 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/chenguanghan123/article/details/103338233