利用Java GUI 实现简单的计算器

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
/**
 * GUI计算器
 * @author Administrator
 *
 */
public class Calculater {
    static float sum = 0f;
    
    private JFrame frame;
    private JTextField textField;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Calculater window = new Calculater();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public Calculater() {
        initialize();
                        
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
                
        frame = new JFrame();
        frame.setBounds(100, 100, 730, 619);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        
        JButton btnNewButton = new JButton("1");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                textField.setText(textField.getText()+1);
                
            }
        });
        btnNewButton.setBounds(70, 265, 50, 26);
        frame.getContentPane().add(btnNewButton);
        
        JButton button = new JButton("2");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                textField.setText(textField.getText()+2);
                
            }
        });
        button.setBounds(144, 265, 50, 26);
        frame.getContentPane().add(button);
        
        JButton button_1 = new JButton("3");
        button_1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                textField.setText(textField.getText()+3);
                
            }
        });
        button_1.setBounds(221, 265, 50, 26);
        frame.getContentPane().add(button_1);
        
        JButton button_2 = new JButton("4");
        button_2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                textField.setText(textField.getText()+4);
                
            }
        });
        button_2.setBounds(70, 304, 50, 26);
        frame.getContentPane().add(button_2);
        
        JButton button_3 = new JButton("5");
        button_3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                textField.setText(textField.getText()+5);
                
            }
        });
        button_3.setBounds(144, 304, 50, 26);
        frame.getContentPane().add(button_3);
        
        JButton button_4 = new JButton("6");
        button_4.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                textField.setText(textField.getText()+6);
                
            }
        });
        button_4.setBounds(221, 304, 50, 26);
        frame.getContentPane().add(button_4);
        
        JButton button_5 = new JButton("7");
        button_5.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                textField.setText(textField.getText()+7);
                
            }
        });
        button_5.setBounds(70, 339, 50, 26);
        frame.getContentPane().add(button_5);
        
        JButton button_6 = new JButton("8");
        button_6.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                textField.setText(textField.getText()+8);
                
            }
        });
        button_6.setBounds(144, 339, 50, 26);
        frame.getContentPane().add(button_6);
        
        JButton button_7 = new JButton("9");
        button_7.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                textField.setText(textField.getText()+9);
                
            }
        });
        button_7.setBounds(221, 339, 50, 26);
        frame.getContentPane().add(button_7);
        //加法///////////////////////////////////////////////////////////////////
        JButton button_8 = new JButton("+");
        button_8.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                textField.setText(textField.getText()+" + ");
                
                //
                String str = textField.getText();
                String [] stringArr= str.split((" "));
                
                if(stringArr.length == 2) {
                    float i = Float.valueOf(stringArr[0]);
                    sum = i;

            }    
                else if(stringArr[stringArr.length-3].equals("+")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum+i;
                }
                
                else if(stringArr[stringArr.length-3].equals("-")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum-i;
                }
                else if(stringArr[stringArr.length-3].equals("*")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum*i;
                }
                else if(stringArr[stringArr.length-3].equals("/")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum/i;
                }
            }
        });
        button_8.setBounds(293, 265, 50, 26);
        frame.getContentPane().add(button_8);
        //减法//////////////////////////////////////////////////////////////////////////
        JButton button_9 = new JButton("-");
        button_9.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                textField.setText(textField.getText()+" - ");
                
                //
                String str = textField.getText();
                String [] stringArr= str.split((" "));
                
                if(stringArr.length == 2) {
                    float i = Float.valueOf(stringArr[0]);
                    sum = i;

            }    
                else if(stringArr[stringArr.length-3].equals("+")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum+i;
                }
                
                else if(stringArr[stringArr.length-3].equals("-")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum-i;
                }
                else if(stringArr[stringArr.length-3].equals("*")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum*i;
                }
                else if(stringArr[stringArr.length-3].equals("/")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum/i;
                }
            }
        });
        button_9.setBounds(293, 304, 50, 26);
        frame.getContentPane().add(button_9);
        
        //乘法//////////////////////////////////////////////////////////////////
        JButton button_10 = new JButton("*");
        button_10.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                textField.setText(textField.getText()+" * ");
                String str = textField.getText();
                String [] stringArr= str.split((" "));
                
                if(stringArr.length == 2) {
                    float i = Float.valueOf(stringArr[0]);
                    sum = i;

            }    
                else if(stringArr[stringArr.length-3].equals("+")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum+i;
                }
                
                else if(stringArr[stringArr.length-3].equals("-")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum-i;
                }
                else if(stringArr[stringArr.length-3].equals("*")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum*i;
                }
                else if(stringArr[stringArr.length-3].equals("/")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum/i;
                }
            }
        });
        button_10.setBounds(293, 339, 50, 26);
        frame.getContentPane().add(button_10);
        
        JButton button_11 = new JButton("0");
        button_11.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                textField.setText(textField.getText()+0);
            }
        });
        button_11.setBounds(144, 380, 50, 26);
        frame.getContentPane().add(button_11);
        //除法//////////////////////////////////////////////////////////////////
        JButton button_12 = new JButton("/");
        button_12.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                textField.setText(textField.getText()+" / ");
                String str = textField.getText();
                String [] stringArr= str.split((" "));
                
                if(stringArr.length == 2) {
                    float i = Float.valueOf(stringArr[0]);
                    sum = i;

            }    
                else if(stringArr[stringArr.length-3].equals("+")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum+i;
                }
                
                else if(stringArr[stringArr.length-3].equals("-")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum-i;
                }
                else if(stringArr[stringArr.length-3].equals("*")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum*i;
                }
                else if(stringArr[stringArr.length-3].equals("/")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum/i;
                }
            }
        });
        button_12.setBounds(293, 380, 50, 26);
        frame.getContentPane().add(button_12);
        
        JButton button_13 = new JButton("=");
        button_13.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                textField.setText(textField.getText()+" = ");        
                
                String str = textField.getText();
                String [] stringArr= str.split((" "));
                
                if(stringArr.length == 2) {
                    float i = Float.valueOf(stringArr[0]);
                    sum = i;
                    textField.setText(textField.getText()+sum);

            }    
                else if(stringArr[stringArr.length-3].equals("+")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum+i;
                    textField.setText(textField.getText()+sum);
                }
                
                else if(stringArr[stringArr.length-3].equals("-")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum-i;
                    textField.setText(textField.getText()+sum);
                }
                else if(stringArr[stringArr.length-3].equals("*")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum*i;
                    textField.setText(textField.getText()+sum);
                }
                else if(stringArr[stringArr.length-3].equals("/")) {    
                    float i = Float.valueOf(stringArr[stringArr.length-2]);
                    sum = sum/i;
                    textField.setText(textField.getText()+sum);
                }
                
            }
        });
        button_13.setBounds(364, 265, 50, 26);
        frame.getContentPane().add(button_13);
        
        textField = new JTextField();
        textField.setBounds(70, 148, 344, 79);
        frame.getContentPane().add(textField);
        textField.setColumns(10);
        
        JButton btnC = new JButton("C");
        btnC.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                textField.setText("");
                sum = 0;
            }
        });
        btnC.setBounds(364, 304, 50, 26);
        frame.getContentPane().add(btnC);
        
        JButton button_14 = new JButton(".");
        button_14.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                textField.setText(textField.getText()+".");
            }
        });
        
        
        button_14.setBounds(364, 341, 50, 26);
        frame.getContentPane().add(button_14);
    }
}

运行后是这个样子的,只能进行加减乘除运算(多位数、连续加减乘除。。)

posted on 2017-10-19 17:47  李洋1991  阅读(6802)  评论(1编辑  收藏  举报