栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java实现简易计算器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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();
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/354156.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号