Java实现简易计算器

package 课设;

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class Calculator {
    public JFrame frame;            //窗口
    public JTextField textField;    //文本框
    public JButton buttons[];       //按钮
    public JPanel panel;            //面板
    public String buttonArr[] = {"%", "DEL", "C", "+", "7", "8", "9", "-", "4", "5", "6", "×", "1", "2", "3", "÷", "+/-", "0", ".", "="};//按钮上的字符
    public String information = "";  //文本框里的信息
    public String a, b, operate;      //运算符前的字符,运算符后的字符,运算符
    public double result1;                 //double类型计算结果
    public String result2;                 //字符串类型结果

    public void ChuShi() {
        frame = new JFrame("好多Bug的计算器");  //创建窗口
        textField = new JTextField();     //创建文本框
        panel = new JPanel();              //创建面板
        buttons = new JButton[buttonArr.length];//创建按钮

        frame.setBounds(700, 188, 490, 580);  //设置窗口的位置尺寸
        textField.setBounds(10, 15, 465, 90);  //文本框的位置尺寸
        textField.setFont(new Font("宋体", Font.BOLD, 60));//设置文本框的字体:字体,粗细,大小
        textField.setBackground(new Color(119, 136, 153));

        panel.setBackground(new Color(135, 206, 250));
        panel.setBounds(10, 130, 465, 400);  //面板的位置尺寸
        panel.setLayout(new GridLayout(5, 4, 5, 5));    //网格布局

        frame.add(textField);                               //文本框添加在窗口里
        frame.add(panel);                                   //面板添加到窗口里

        for (int i = 0; i < buttonArr.length; i++) {
            buttons[i] = new JButton(buttonArr[i]);         //创建按钮并赋值
            panel.add(buttons[i]);                          //按钮添加到面板上
            buttons[i].setFont(new Font("宋体", Font.BOLD, 35));
            buttons[i].setBackground(new Color(135, 206, 235));
            int index = i;
            //监听
            buttons[i].addMouseListener(new MouseAdapter() {  //点击按钮时调用该方法
                public void mouseClicked(MouseEvent e) {       //鼠标按键上单击并释放时调用
                    input(buttons[index].getText());        //获取按钮上内容
                }
            });
        }
        frame.setResizable(false);                             //窗口大小调整 关闭
        frame.setLayout(null);                                  //设置布局
        frame.setVisible(true);                               //设置窗口可视
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗体
    }

    public void input(String v) {
        switch (v) {
            case "1": {
                information += "1";
                textField.setText(information);
                break;
            }
            case "2": {
                information += "2";
                textField.setText(information);
                break;
            }
            case "3": {
                information += "3";
                textField.setText(information);
                break;
            }
            case "4": {
                information += "4";
                textField.setText(information);
                break;
            }
            case "5": {
                information += "5";
                textField.setText(information);
                break;
            }
            case "6": {
                information += "6";
                textField.setText(information);
                break;
            }
            case "7": {
                information += "7";
                textField.setText(information);
                break;
            }
            case "8": {
                information += "8";
                textField.setText(information);
                break;
            }
            case "9": {
                information += "9";
                textField.setText(information);
                break;
            }
            case "0": {
                information += "0";
                textField.setText(information);
                break;
            }
            case ".": {
                information += ".";
                textField.setText(information);
                break;
            }
            case "C": {
                information = "";
                textField.setText(information);
                break;
            }
            case "DEL": {
                information = information.substring(0, information.length() - 1);
                textField.setText(information);
                break;
            }
            case "+/-": {
                if (Double.parseDouble(information) > 0) {
                    information = "-" + information;
                    textField.setText(information);
                } else if (Double.parseDouble(information) < 0) {
                    information = information.substring(1);
                    textField.setText(information);
                }
                break;
            }
            case "%": {
                information = Double.parseDouble(information) / 100 + "";
                textField.setText(information);
                break;
            }
            case "+": {
                information += "+";
                operate = "+";
                textField.setText(information);
                break;
            }
            case "-": {
                information += "-";
                operate = "-";
                textField.setText(information);
                break;
            }
            case "×": {
                information += "×";
                operate = "×";
                textField.setText(information);
                break;
            }
            case "÷": {
                information += "÷";
                operate = "÷";
                textField.setText(information);
                break;
            }
            case "=": {
                a = information.substring(0, information.indexOf(operate));//截取运算符之前的字符串数据
                b = information.substring(information.indexOf(operate) + 1);//截取运算符之后的字符串数据
                result();
                textField.setText(result2);
                information = result2;
            }
        }
    }

    public void result() {
        switch (operate) {
            case "+": {
                result1 = Double.parseDouble(a) + Double.parseDouble(b);//字符串转化double以计算结果
                result2 = String.valueOf(result1);                      //double转化字符串型setText
                break;
            }
            case "-": {
                result1 = Double.parseDouble(a) - Double.parseDouble(b);//字符串转化double以计算结果
                result2 = String.valueOf(result1);                      //double转化字符串型setText
                break;
            }
            case "×": {
                result1 = Double.parseDouble(a) * Double.parseDouble(b);//字符串转化double以计算结果
                result2 = String.valueOf(result1);                      //double转化字符串型setText
                break;
            }
            case "÷": {
                result1 = Double.parseDouble(a) / Double.parseDouble(b);//字符串转化double以计算结果
                result2 = String.valueOf(result1);                      //double转化字符串型setText
                break;
            }
        }
    }

    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        calculator.ChuShi();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值