一个简单的计算器(Java)

来源:互联网 发布:潮汕话学习软件 编辑:程序博客网 时间:2024/05/16 07:53

一个简单的计算器(Java)

直接贴代码喽~

package com.calcular.work;import java.awt.*;import java.awt.event.*;import java.text.DecimalFormat;import javax.swing.*;public class MainActivity implements ActionListener {    public static void main(String[] args) {        SwingUtilities.invokeLater(new Runnable() {            @Override            public void run() {                new MainActivity().setlayout();            }        });    }    JPanel panelUP, panelDown;    JTextField textField;    public void setlayout() {        panelUP = new JPanel();        textField = new JTextField("0");        textField.setHorizontalAlignment(JTextField.RIGHT);        panelUP.add(textField);        panelUP.setLayout(new GridLayout());        panelUP.setSize(225, 30);        JButton btac = new JButton("AC");        JButton btdel = new JButton("Del");        btac.addActionListener(this);        btdel.addActionListener(this);        panelDown = new JPanel();        String[] bt = {"7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "0", ".", "=", "+"};        JButton[] button = new JButton[16];        panelDown.setLayout(new GridLayout(4, 4));        for (int i = 0; i < bt.length; i++) {            button[i] = new JButton(bt[i]);            panelDown.add(button[i]);            button[i].addActionListener(this);        }        JFrame frame = new JFrame("Calculator");        frame.setLayout(new BorderLayout());        frame.add(panelUP, BorderLayout.NORTH);        frame.add(panelDown, BorderLayout.CENTER);        frame.setVisible(true);        frame.setSize(225, 250);        frame.setLocationRelativeTo(null);    }    private double fnum, snum, result;    private int temp;    DecimalFormat dec = new DecimalFormat("0.00 ");     //用于控制Double类型数据的小数位数    @Override    public void actionPerformed(ActionEvent e) {        String string = e.getActionCommand();        switch (string) {        case "+":            fnum = Double.parseDouble(this.textField.getText().toString());            textField.setText("");            temp = 1;            break;        case "-":            fnum = Double.parseDouble(this.textField.getText().toString());            textField.setText("");            temp = 2;            break;        case "/":            fnum = Double.parseDouble(this.textField.getText().toString());            textField.setText("");            temp = 3;            break;        case "*":            fnum = Double.parseDouble(this.textField.getText().toString());            textField.setText("");            temp = 4;            break;        case ".":            if (this.textField.getText().equals("")) {                textField.setText("0.");            }else {                textField.setText(textField.getText().toString() + ".");            }            break;        case "=":            snum = Double.parseDouble(textField.getText().toString());            switch (temp) {            case 1:                result = fnum + snum;                textField.setText(Double.toString(result));                break;            case 2:                result = fnum - snum;                textField.setText(Double.toString(result));                break;            case 3:                result = fnum / snum;                textField.setText(Double.toString(result));                break;            case 4:                result = fnum * snum;                textField.setText(Double.toString(result));                break;            default:                break;            }            break;        default:            if (textField.getText().toString().equals("0")) {                textField.setText(string);            }else {                textField.setText(textField.getText() + string);            }            break;        }    }}
0 0
原创粉丝点击