简单的计算器

来源:互联网 发布:php 打印二维数组 编辑:程序博客网 时间:2024/05/22 10:46

[1].[文件] MyCalculator.java ~ 3KB    下载(2) 跳至 [1]

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
 
publicclass MyCalculator extendsJFrame{
     
    privatestatic final long serialVersionUID = 1L;
     
    privateString showStr="",remainStr="",method="";
    privateboolean isCalculated=false;
    privatevoid setShowStr(String showStr){
        this.showStr=showStr;
    }
    privateString[] str={"C","CE","+/-",
            "7","8","9","4","5","6","1","2","3","0",
            ".","=","+","-","*","/"};
    JButton[] jbt=newJButton[str.length];
    JTextField jtf=newJTextField();
     
    publicMyCalculator(){
        for(inti=0;i<str.length;i++){
            jbt[i]=newJButton(str[i]);
        }
         
        JPanel p1=newJPanel();
        p1.setLayout(newGridLayout(5,3));
        for(inti=0;i<str.length-4;i++){
            p1.add(jbt[i]);
        }
         
        JPanel p2=newJPanel();
        p2.setLayout(newGridLayout(4,1));
        for(inti=str.length-4;i<str.length;i++){
            p2.add(jbt[i]);
        }
        add(jtf,BorderLayout.NORTH);
        add(p1,BorderLayout.CENTER);
        add(p2,BorderLayout.EAST);
         
        ButtonListener listener=newButtonListener();
        for(inti=0;i<str.length;i++){
            jbt[i].addActionListener(listener);
        }
    }
     
    classButtonListener implementsActionListener {
        publicvoid actionPerformed(ActionEvent e){
            String s=e.getActionCommand();
            if(s=="C"&&showStr.length()>0){
                showStr=showStr.substring(0,showStr.length()-1);
                jtf.setText(showStr);
            }//clear
            elseif (s=="CE"){
                showStr="";
                remainStr="";
                isCalculated=false;
                jtf.setText(showStr);
            }
            //clear all
            elseif (s=="+"||s=="-"||s=="*"||s=="/"){
                remainStr=showStr;
                showStr="";
                method=s;
                jtf.setText(showStr);
            }
            elseif (s=="+/-"&&showStr==""){
                showStr+="-";
                jtf.setText(showStr);
            }
            elseif (s=="="){
                jtf.setText(calculation(remainStr,showStr,method));
            }
            else{
                if(isCalculated){
                    showStr="";
                    jtf.setText(showStr);
                    isCalculated=false;
                }
                showStr+=s;
                jtf.setText(showStr);
            }//number
        }
    }
    privateString calculation(String s1,String s2,String s3){
        Double num1=Double.parseDouble(s1);
        Double num2=Double.parseDouble(s2);
        isCalculated=true;
        if(s3=="+"){
            setShowStr(num1+num2+"");
            returnnum1+num2+"";
        }
        elseif (s3=="-"){
            setShowStr(num1-num2+"");
            returnnum1-num2+"";
        }
        elseif (s3=="*"){
            setShowStr(num1*num2+"");
            returnnum1*num2+"";
        }
        elseif (s3=="/"){
            setShowStr(num1/num2+"");
            returnnum1/num2+"";
        }
        return"error";
    }
    publicstatic void main(String[] args){
        JFrame frame=newMyCalculator();
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
0 0
原创粉丝点击