日期:2014-05-20  浏览次数:20746 次

谁能帮我写一个能加减乘除的完整代码 (via TranXcode)
先谢谢了,

------解决方案--------------------
Java code

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;

public class Calc extends JFrame implements ActionListener {
    private JPanel contentPane;

    private JButton JBone = new JButton("1");
    private JButton JBtwo = new JButton("2");
    private JButton JBthree = new JButton("3");
    private JButton JBfour = new JButton("4");
    private JButton JBfive = new JButton("5");
    private JButton JBsix = new JButton("6");
    private JButton JBseven = new JButton("7");
    private JButton JBeight = new JButton("8");
    private JButton JBnight = new JButton("9");
    private JButton JBzero = new JButton("0");

    private JButton JBpoint = new JButton(".");

    private JButton JBadd = new JButton("+");
    private JButton JBmultiply = new JButton("*");
    private JButton JBdivide = new JButton("/");
    private JButton JBsubtract = new JButton("-");
    private JButton JBequals = new JButton("=");

    private JButton JBdbzero = new JButton("00");

    private String tempOperand1 = null; //增加全局变量增加全局变量增加全局变量增加全局变量
    private String tempOperand2 = null;

    private JTextField tf = new JTextField();// 显示框

    private JButton JBclear = new JButton("清零");

    boolean add = false, substract = false, multiply = false, divide = false;

    public Calc() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 369, 448);
    setTitle("JAVA版计算器");
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    contentPane.setLayout(null);
    setContentPane(contentPane);

    tf.setBounds(10, 10, 333, 34);
    contentPane.add(tf);
    tf.setColumns(10);
    tf.setEditable(false);

    JBone.setBounds(30, 283, 52, 42);// 数字1
    contentPane.add(JBone);
    JBone.addActionListener(this);

    JBtwo.setBounds(92, 283, 52, 42);// 数字2
    contentPane.add(JBtwo);
    JBtwo.addActionListener(this);

    JBthree.setBounds(154, 283, 52, 42);// 数字3
    contentPane.add(JBthree);
    JBthree.addActionListener(this);

    JBfour.setBounds(30, 231, 52, 42);// 数字4
    contentPane.add(JBfour);
    JBfour.addActionListener(this);

    JBfive.setBounds(92, 231, 52, 42);// 数字5
    contentPane.add(JBfive);
    JBfive.addActionListener(this);

    JBsix.setBounds(154, 231, 52, 42);// 数字6
    contentPane.add(JBsix);
    JBsix.addActionListener(this);

    JBseven.setBounds(30, 179, 52, 42);// 数字7
    contentPane.add(JBseven);
    JBseven.addActionListener(this);

    JBeight.setBounds(92, 179, 52, 42);// 数字8
    contentPane.add(JBeight);
    JBeight.addActionListener(this);

    JBnight.setBounds(154, 179, 52, 42);// 数字9
    contentPane.add(JBnight);
    JBnight.addActionListener(this);

    JBzero.setBounds(30, 343, 52, 42);// 数字0
    contentPane.add(JBzero);
    JBzero.addActionListener(this);

    JBpoint.setBounds(92, 343, 52, 42);// 按钮.
    contentPane.add(JBpoint);
    JBpoint.addActionListener(this);

    JBadd.setBounds(221, 283, 52, 102);// 按钮+
    contentPane.add(JBadd);
    JBadd.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        add = true;
        tempOperand1 = tf.getText().trim();
        tf.setText("");
        }
    });
    JBmultiply.setBounds(221, 231, 52, 42);// 按钮*
    contentPane.add(JBmultiply);
    JBmultiply.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        multiply = true;
        tempOperand1 = tf.getText().trim();
        tf.setText("");
        }
    });

    JBdivide.setBounds(283, 231, 52, 42);// 按钮/
    contentPane.add(JBdivide);
    JBdivide.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        divide = true;
        tempOperand1 = tf.getText().trim();
        tf.setText("");
        }
    });

    JBsubtract.setBounds(283, 283, 52, 42);// 按钮-
    contentPane.add(JBsubtract);
    JBsubtract.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        substract = true;
        tempOperand1 = tf.getText().trim();
        tf.setText("");
        }
    });

    JBequals.setBounds(283, 343, 52, 42);// 按钮=
    contentPane.add(JBequals);
    JBequals.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {

        tempOperand2 = tf.getText().trim();
        ;
        double operand1 = Double.parseDouble(tempOperand1);// 既然都有小数点了,就干脆用Double型把
        double operand2 = Double.parseDouble(tempOperand2);
        double result = 0;
        if (add) {
            result = operand1 + operand2;
            add = false;
        }
        if (substract) {
            result = operand1 - operand2;
            substract = false;
        }
        if (multiply) {
            result = operand1 * operand2;
            multiply = false;
        }
        if (divide) {
            result = operand1 / operand2;
            divide = false;
        }
        tf.setText(result + "");
        tempOperand1 = null;
        tempOperand2 = null;
        }

    });

    JBdbzero.setBounds(154, 343, 52, 42);// 按钮00 ////干嘛用的???????????????
    contentPane.add(JBdbzero);
    JBdbzero.addActionListener(this);//是不是想添加正负号??????

    JBclear.setBounds(270, 179, 65, 42);
    contentPane.add(JBclear);
    JBclear.addActionListener(this);

    }

    public void actionPerformed(ActionEvent e) {
    String m = null;
    m = tf.getText().toString();    
    if (e.getSource() == JBone) {
        
        m += "1";
        tf.setText(m);
      
    } else if (e.getSource() == JBtwo) {
       
        m += "2";
        tf.setText(m);
       
    } else if (e.getSource() == JBthree) {
       
        m += "3";
        tf.setText(m);
      
    } else if (e.getSource() == JBfour) {
       
        m += "4";
        tf.setText(m);
       
    } else if (e.getSource() == JBfive) {
        
        m += "5";
        tf.setText(m);
        
    } else if (e.getSource() == JBsix) {
       
        m += "6";
        tf.setText(m);
       
    } else if (e.getSource() == JBseven) {
       
        m += "7";
        tf.setText(m);
        
    } else if (e.getSource() == JBeight) {
        
        m += "8";
        tf.setText(m);
       
    } else if (e.getSource() == JBnight) {
        
        m += "9";
        tf.setText(m);
       

    } else if (e.getSource() == JBdbzero) {
       
        m += "00";
        tf.setText(m);
      

    } else if (e.getSource() == JBpoint) {
        
        m += ".";
        tf.setText(m);
       

    } else if (e.getSource() == JBclear) {

        tf.setText("");
    } 
    }

    public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
        try {
            Calc frame = new Calc();
            frame.setVisible(true);
        } catch (Exception e) {
            e.printStackTrace();
        }
        }
    });
    }

}