zoukankan      html  css  js  c++  java
  • java 计算器

    简介

    java 计算器

    code

    /*
     * @Author: your name
     * @Date: 2020-10-31 14:47:11
     * @LastEditTime: 2020-10-31 17:05:14
     * @LastEditors: Please set LastEditors
     * @Description: In User Settings Edit
     * @FilePath: /java/calcu/calculatePanel.java
     */
    package calcu;
    
    import java.awt.*;
    import java.awt.event.*;
    
    import javax.swing.*;
    
    public class CalculatePanel extends JPanel {
        private JButton display;
        private JPanel panel;
        private double result;
        private String lastCommand;
        private boolean start;
    
        public static void main(String[] args) {
            EventQueue.invokeLater(() -> {
                JFrame m = new JFrame("第一个Java窗口");
                m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                m.getContentPane().add(new CalculatePanel());
                m.pack();
                m.setVisible(true);
            });
        }
    
        public CalculatePanel() {
            setLayout(new BorderLayout());
    
            result = 0;
            lastCommand = "=";
            start = true;
    
            // add the display
            display = new JButton("0");
            display.setEnabled(false);
            add(display, BorderLayout.NORTH);
    
            ActionListener insert = new InsertAction();
            ActionListener command = new CommandAction();
            // add the buttons in a 4 * 4 grid
    
            panel = new JPanel();
            panel.setLayout(new GridLayout(4, 4));
    
            addButton("7", insert);
            addButton("8", insert);
            addButton("9", insert);
            addButton("/", command);
    
            addButton("4", insert);
            addButton("5", insert);
            addButton("6", insert);
            addButton("*", command);
    
            addButton("1", insert);
            addButton("2", insert);
            addButton("3", insert);
            addButton("-", command);
    
            addButton("0", insert);
            addButton(".", insert);
            addButton("=", command);
            addButton("+", command);
    
            add(panel, BorderLayout.CENTER);
        }
    
        private void addButton(String label, ActionListener listener) {
            JButton button = new JButton(label);
            button.addActionListener(listener);
            panel.add(button);
        }
    
        private class InsertAction implements ActionListener {
            public void actionPerformed(ActionEvent event) {
                String input = event.getActionCommand();
                if (start) {
                    display.setText("");
                    start = false;
                }
                display.setText(display.getText() + input);
            }
        }
    
        private class CommandAction implements ActionListener {
            public void actionPerformed(ActionEvent event) {
                String command = event.getActionCommand();
    
                if (start) {
                    if (command.equals("-")) {
                        display.setText(command);
                        start = false;
                    } else {
                        lastCommand = command;
                    }
                } else {
                    calculate(Double.parseDouble(display.getText()));
                    lastCommand = command;
                    start = true;
                }
            }
        }
    
        public void calculate(double x) {
            if (lastCommand.equals("+"))
                result += x;
            else if (lastCommand.equals("-"))
                result -= x;
            else if (lastCommand.equals("*"))
                result *= x;
            else if (lastCommand.equals("/"))
                result /= x;
            else if (lastCommand.equals("="))
                result = x;
            display.setText("" + result);
        }
    }
    
    
    Hope is a good thing,maybe the best of things,and no good thing ever dies.----------- Andy Dufresne
  • 相关阅读:
    0302 随想
    1231递归下降语法分析程序设计
    《构建之法》1、2、3章读后感
    复利计算总结
    操作系统实验0
    学习进度条
    0302思考并回答一些问题
    评论
    c语言文法
    词法分析
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/13906819.html
Copyright © 2011-2022 走看看