首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

小弟新手凭想象做了个计算器的初步加法运算如何实现呢

2012-03-03 
小弟新手凭想象做了个计算器的初步加法运算怎么实现呢?小弟凭自己的想法写的,很多数字的实现也不知道对不

小弟新手凭想象做了个计算器的初步加法运算怎么实现呢?
小弟凭自己的想法写的,很多数字的实现也不知道对不对。但不知道加法怎么实现。文本框可以取出第一次输入的值,那么按了+号以后呢?第二次的值怎么去呢?也是gettext吗?试了很多次都不对, 希望给个思路和小小的提示就好,我继续写下去。会了加法,其他乘除也就会了


Java code
import java.awt.BorderLayout;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.*;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 JTextField tf = new JTextField();// 显示框    private JButton JBclear = new JButton("清零");    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(this);        JBmultiply.setBounds(221, 231, 52, 42);// 按钮*        contentPane.add(JBmultiply);        JBmultiply.addActionListener(this);        JBdivide.setBounds(283, 231, 52, 42);// 按钮/        contentPane.add(JBdivide);        JBdivide.addActionListener(this);        JBsubtract.setBounds(283, 283, 52, 42);// 按钮-        contentPane.add(JBsubtract);        JBsubtract.addActionListener(this);        JBequals.setBounds(283, 343, 52, 42);// 按钮=        contentPane.add(JBequals);        JBequals.addActionListener(this);        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 add() {        String a=tf.getText().trim();        tf.setText("");    }    public void actionPerformed(ActionEvent e) {        String m = null;        m = tf.getText().toString();        Integer g = null;        if (e.getSource() == JBone) {            if (m != null) {                m += "1";                tf.setText(m);            }        } else if (e.getSource() == JBtwo) {            if (m != null) {                m += "2";                tf.setText(m);            }        } else if (e.getSource() == JBthree) {            if (m != null) {                m += "3";                tf.setText(m);            }        } else if (e.getSource() == JBfour) {            if (m != null) {                m += "4";                tf.setText(m);            }        } else if (e.getSource() == JBfive) {            if (m != null) {                m += "5";                tf.setText(m);            }        } else if (e.getSource() == JBsix) {            if (m != null) {                m += "6";                tf.setText(m);            }        } else if (e.getSource() == JBseven) {            if (m != null) {                m += "7";                tf.setText(m);            }        } else if (e.getSource() == JBeight) {            if (m != null) {                m += "8";                tf.setText(m);            }        } else if (e.getSource() == JBnight) {            if (m != null) {                m += "9";                tf.setText(m);            }        } else if (e.getSource() == JBdbzero) {            if (m != null) {                m += "00";                tf.setText(m);            }        }else if (e.getSource() == JBpoint) {            if (m != null) {                m += ".";                tf.setText(m);            }        }else if (e.getSource() == JBclear) {                            tf.setText("");            }        else if (e.getSource() == JBadd) {            tf.setText("");                                            }else if (e.getSource() == JBequals) {            String n = tf.getText();            Integer h = Integer.parseInt(n);            g = Integer.parseInt(new String(m));            Integer sum = g+h;            tf.setText(sum.toString());                                }    }        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();                }            }        });    }} 



[解决办法]
给你提供个最简单的思路吧,按+的时候保存当前值到一个变量中比如a中,然后清空,按=的时候将之前的变量与当前变量相加,显示结果即可。
Java code
import java.awt.BorderLayout;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.*;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;        //保留需要进行操作的数    int a = 0;    int b = 0;    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 JTextField tf = new JTextField();// 显示框    private JButton JBclear = new JButton("清零");    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(this);        JBmultiply.setBounds(221, 231, 52, 42);// 按钮*        contentPane.add(JBmultiply);        JBmultiply.addActionListener(this);        JBdivide.setBounds(283, 231, 52, 42);// 按钮/        contentPane.add(JBdivide);        JBdivide.addActionListener(this);        JBsubtract.setBounds(283, 283, 52, 42);// 按钮-        contentPane.add(JBsubtract);        JBsubtract.addActionListener(this);        JBequals.setBounds(283, 343, 52, 42);// 按钮=        contentPane.add(JBequals);        JBequals.addActionListener(this);        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 add() {        String a=tf.getText().trim();        tf.setText("");    }    public void actionPerformed(ActionEvent e) {        String m = null;        m = tf.getText().toString();        Integer g = null;        if (e.getSource() == JBone) {            if (m != null) {                m += "1";                tf.setText(m);            }        } else if (e.getSource() == JBtwo) {            if (m != null) {                m += "2";                tf.setText(m);            }        } else if (e.getSource() == JBthree) {            if (m != null) {                m += "3";                tf.setText(m);            }        } else if (e.getSource() == JBfour) {            if (m != null) {                m += "4";                tf.setText(m);            }        } else if (e.getSource() == JBfive) {            if (m != null) {                m += "5";                tf.setText(m);            }        } else if (e.getSource() == JBsix) {            if (m != null) {                m += "6";                tf.setText(m);            }        } else if (e.getSource() == JBseven) {            if (m != null) {                m += "7";                tf.setText(m);            }        } else if (e.getSource() == JBeight) {            if (m != null) {                m += "8";                tf.setText(m);            }        } else if (e.getSource() == JBnight) {            if (m != null) {                m += "9";                tf.setText(m);            }        } else if (e.getSource() == JBdbzero) {            if (m != null) {                m += "00";                tf.setText(m);            }        }else if (e.getSource() == JBpoint) {            if (m != null) {                m += ".";                tf.setText(m);            }        }else if (e.getSource() == JBclear) {                            tf.setText("");            }        else if (e.getSource() == JBadd) {            a = Integer.parseInt(tf.getText());            tf.setText("");            System.out.println(a);        }else if (e.getSource() == JBequals) {            String n = tf.getText();            Integer b = Integer.parseInt(n);            Integer sum = a+b;            tf.setText(sum.toString());        }    }        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();                }            }        });    }} 


[解决办法]
都还可以
[解决办法]

Java code
import java.awt.BorderLayout;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.*;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();        }        }    });    }} 


[解决办法]
测试结果:

123.456 + 456.123 = 579.579
123.456 - 456.123 = -332.667
123.456 * 456.123 = 56311.121088
123.456 / 456.123 = 0.27066383409738165
[解决办法]
去google一下“逆波兰表达式”的算法
[解决办法]
其实可以用switch来替换if
[解决办法]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~看看
[解决办法]
顶一下,awt,swing等java图形界面的东西我都没学,用的很少

热点排行
Bad Request.