日期:2014-05-20 浏览次数:20746 次
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(); } } }); } }