import java.awt.Button;
import java.awt.CheckboxMenuItem;
import java.awt.GridLayout;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import javax.swing.JFrame;
import javax.swing.JTextField;
public class Calculator {    GridLayout gl1, gl2, gl3;    Panel p0, p1, p2, p3;    JTextField tf1;    TextField tf2;    Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14,
            b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26;    StringBuffer str;    double x, y;    int z;    static double m;    public Calculator() {
        MenuItem m31 = new MenuItem("帮助主题");
        MenuItem m32 = new MenuItem("关于计算器");
        gl1 = new GridLayout(1, 4, 10, 0);
        gl2 = new GridLayout(4, 1, 0, 15);
        gl3 = new GridLayout(4, 5, 10, 15);
        tf1 = new JTextField(27);
        tf2 = new TextField(10);
        p0 = new Panel();
        p1 = new Panel();
        p2 = new Panel();
        p3 = new Panel();
        str = new StringBuffer();
        MenuItem m11 = new MenuItem("复制");
        MenuItem m12 = new MenuItem("粘贴");
        MenuItem m13 = new MenuItem("退出");
        MenuItem m23 = new MenuItem("数字分组");
        Menu m1 = new Menu("编辑");
        Menu m2 = new Menu("查看");
        Menu m3 = new Menu("帮助");
        CheckboxMenuItem m22 = new CheckboxMenuItem("科学");
        MenuItem m21 = new MenuItem("标准");
        JFrame f = new JFrame("计算器");
        JTextField tf = new JTextField(20);
        MenuBar mb = new MenuBar();
        tf1.setHorizontalAlignment(JTextField.RIGHT);
        tf1.setEnabled(false);
        tf1.setText("0");
        tf2.setEditable(false);
        b0 = new Button("Backspace");
        b0.addActionListener(new Bt());
        b1 = new Button("CE");
        b1.addActionListener(new Bt());
        b2 = new Button("C");
        b2.addActionListener(new Bt());
        b3 = new Button("MC");
        b3.addActionListener(new Bt());
        b4 = new Button("MR");
        b4.addActionListener(new Bt());
        b5 = new Button("MS");
        b5.addActionListener(new Bt());
        b6 = new Button("M+");
        b6.addActionListener(new Bt());
        b7 = new Button("7");
        b7.addActionListener(new Bt());
        b8 = new Button("8");
        b8.addActionListener(new Bt());
        b9 = new Button("9");
        b9.addActionListener(new Bt());
        b10 = new Button("/");
        b10.addActionListener(new Bt());
        b11 = new Button("sqrt");
        b11.addActionListener(new Bt());
        b12 = new Button("4");
        b12.addActionListener(new Bt());
        b13 = new Button("5");
        b13.addActionListener(new Bt());
        b14 = new Button("6");
        b14.addActionListener(new Bt());
        b15 = new Button("*");        b15.addActionListener(new Bt());
        b16 = new Button("%");        b16.addActionListener(new Bt());
        b17 = new Button("1");        b17.addActionListener(new Bt());
        b18 = new Button("2");        b18.addActionListener(new Bt());
        b19 = new Button("3");        b19.addActionListener(new Bt());
        b20 = new Button("-");        b20.addActionListener(new Bt());
        b21 = new Button("1/X");        b21.addActionListener(new Bt());
        b22 = new Button("0");        b22.addActionListener(new Bt());
        b23 = new Button("+/-");        b23.addActionListener(new Bt());
        b24 = new Button(".");        b24.addActionListener(new Bt());
        b25 = new Button("+");        b25.addActionListener(new Bt());
        b26 = new Button("=");
        b26.addActionListener(new Bt());
        f.setMenuBar(mb);        mb.add(m1);
        mb.add(m2);
        mb.setHelpMenu(m3);        m1.add(m11);
        m1.add(m12);
        m1.addSeparator();
        m1.add(m13);        mb.add(m1);
        mb.add(m2);
        mb.setHelpMenu(m3);        m2.add(m21);        m2.add(m22);        m2.addSeparator();
        m2.add(m23);        m3.add(m31);
        m3.addSeparator();
        m3.add(m32);
        f.setSize(300, 300);
        f.setVisible(true);
        p0.add(tf1);
        p0.setBounds(10, 25, 300, 40);
        p1.setLayout(gl1);
        p1.add(tf2);
        p1.add(b0);
        p1.add(b1);
        p1.add(b2);
        p1.setBounds(10, 65, 300, 25);
        p2.setLayout(gl2);
        p2.add(b3);
        p2.add(b4);
        p2.add(b5);
        p2.add(b6);
        p2.setBounds(10, 110, 40, 150);
        p3.setLayout(gl3);
        p3.add(b7);
        p3.add(b8);
        p3.add(b9);
        p3.add(b10);
        p3.add(b11);
        p3.add(b12);
        p3.add(b13);
        p3.add(b14);
        p3.add(b15);
        p3.add(b16);
        p3.add(b17);
        p3.add(b18);
        p3.add(b19);
        p3.add(b20);
        p3.add(b21);
        p3.add(b22);
        p3.add(b23);
        p3.add(b24);
        p3.add(b25);
        p3.add(b26);
        p3.setBounds(60, 110, 250, 150);
        
       
     
        f.setLayout(null);
        f.add(p0);
        f.add(p1);
        f.add(p2);
        f.add(p3);
       
        f.addWindowListener(new WindowAdapter() {            public void windowClosing(WindowEvent e1) {
                System.exit(0);
            }
        });        f.setSize(350, 350);
        f.setVisible(true);
    }
    
  
            class Bt implements ActionListener {
              public void actionPerformed(ActionEvent e2) {
                if (e2.getSource() == b1) {
                    tf1.setText("0");
                    str.setLength(0);
                }                else if (e2.getSource() == b25) {
                    x = Double.parseDouble(tf1.getText().trim());
                    str.setLength(0);
                    y = 0d;
                    z = 0;
                }                else if (e2.getSource() == b26) {
                    str.setLength(0);
                    switch (z) {
                        case 0:
                            tf1.setText("" + (x + y));
                            break;
                    }
                } else if (e2.getSource() == b24) {
                    if (tf1.getText().trim().indexOf(".") != -1) {                    } else {
                        if (tf1.getText().trim().equals("0")) {
                            str.setLength(0);
                            tf1.setText((str
                                    .append("0" + e2.getActionCommand()))
                                    .toString());
                        } else if (tf1.getText().trim().equals("")) {
                        } else {
                            tf1.setText(str.append(e2.getActionCommand())
                                    .toString());
                        }
                    }                    y = 0d;
                }            }            
            }
    public static void main(String args[]) {
        Calculator c = new Calculator();
    }
}