package Swing;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Work1 {
    public static void main(String[] args) {
        new JsqView(340, 240);
    }
}
@SuppressWarnings("serial")
class JsqView extends JFrame {
    JTextField jtf;
    JButton jb1, jb2, jb3;
    JButton[] jb;
    JPanel jp1, jp2, jp3, jp4;
    MyActionListener l;
    public JsqView(int weith, int heigh) {
        Container con = ContentPane();
        con.setLayout(new BorderLayout(5, 10));
        l = new MyActionListener(this);
        jtf = new JTextField(26);
        jp1 = new JPanel();
        jp1.add(jtf);
        jtf.setHorizontalAlignment(JTextField.RIGHT);
        jp3 = new JPanel();
        jp3.setLayout(new BorderLayout(5, 10));
        jb1 = new JButton("Backspace");
        jb2 = new JButton("CE");
        jb3 = new JButton("C");
        jb1.d);
        jb1.addActionListener(l);
        jb2.addActionListener(l);
        jb2.d);
        jb3.addActionListener(l);
        jb3.d);
        jp2 = new JPanel();
        jp2.setLayout(new GridLayout(1, 3, 5, 5));
        jp2.add(jb1);
        jp2.add(jb2);
        jp2.add(jb3);
        jp4 = new JPanel();
        jp4.setLayout(new GridLayout(4, 5, 5, 5));
        jb = new JButton[20];
        String[] str = { "7", "8", "9", "/", "sqrt", "4", "5", "6", "*", "%",
                "1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" };
        for (int i = 0; i < 20; i++) {
            jb[i] = new JButton(str[i]);
            jb[i].addActionListener(l);
            if (i == 3 || i == 8 || i == 13 || i == 18 || i == 19) {
                jb[i].d);
            }
            jp4.add(jb[i]);
        }
        jp3.add(jp2, BorderLayout.NORTH);
        jp3.add(jp4);
        con.add(jp1, BorderLayout.NORTH);
        con.add(jp3);
        this.setTitle("计算器");
        this.setSize(weith, heigh);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }
}
class MyActionListener implements ActionListener {
    JsqView jv;
    char operator;
    String temp;
    Count c = new Count();
    boolean b = false;
    public MyActionListener(JsqView jv) {
        this.jv = jv;
    }
    public void actionPerformed(ActionEvent e) {
javascript计算器代码        String str = e.getActionCommand().trim();
        //System.out.println(str);
        if (str.matches("[\\d\\.]")) {
            //System.out.println(str);
            if(b){
                jv.jtf.setText("");
                b = false;
            }
            StringBuffer sbf = new StringBuffer();
            String s = Text().trim();
            sbf.append(s);
            if("".equals(s)&&".".equals(str)){
                sbf.append(0+str);
            }else if(s.matches("\\d+")){
                sbf.append(str);
            }else if(str.matches("\\d")){
                sbf.append(str);
            }
            jv.jtf.String());
        } else if (str.matches("[\\+\\-\\*\\/\\%]")) {
            b =false;
            operator = str.charAt(0);
            //System.out.println(str);
            temp = Text().trim();
            jv.jtf.setText("");
        } else if (str.equals("=")) {
            String s = Text().trim();
//            System.out.println(temp);
//        System.out.println(s);
            if("".equals(s)||s==null||temp==null){
                return;
            }
            if((temp.matches("\\d+\\.\\d+"))||(s.matches("\\d+\\.\\d+"))){
                double i = Double.parseDouble(temp);
                double j = Double.parseDouble(s);
                if(!b){
                    temp=s;
                }
                double sum =c.count(i, j, operator,jv);
                jv.jtf.setText(sum + "");
            }else{
                long i = Long.parseLong(temp);
                long j = Long.parseLong(s);
                if(!b){
                    temp=s;
                }
                long sum = c.count(i, j, operator,jv);
                jv.jtf.setText(sum + "");
            }
            b = true;
           
        }else if(str.equals("1/x")){
            String s = Text().trim();
            double i = Double.parseDouble(s);
            double sum = c.count(i,jv);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。