zoukankan      html  css  js  c++  java
  • Java简易计算器

    package ren.redface.demo;
    
    import java.awt.*;
    import java.awt.event.*;
    
    public class Jisuanqi {
    
        public static void main(String[] args) {
            new MyFrame("计算器");
        }
    
    }
    
    class MyFrame extends Frame {
        private static final long serialVersionUID = 1L;
        private TextArea ta, tb;
    
        public MyFrame(String title) {
            super(title);
            SetTextAreas();
            SetButtonArea();
            SetMainFram();
        }
    
        private void SetButtonArea() {
    
            addButton("7", 33, 28, 20, 178);
            addButton("8", 33, 28, 58, 178);
            addButton("9", 33, 28, 96, 178);
            addButton("/", 33, 28, 134, 178);
            addButton("%", 33, 28, 172, 178);
    
            addButton("4", 33, 28, 20, 210);
            addButton("5", 33, 28, 58, 210);
            addButton("6", 33, 28, 96, 210);
            addButton("*", 33, 28, 134, 210);
            addButton("1/x", 33, 28, 172, 210);
    
            addButton("1", 33, 28, 20, 242);
            addButton("2", 33, 28, 58, 242);
            addButton("3", 33, 28, 96, 242);
            addButton("-", 33, 28, 134, 242);
    
            addButton("0", 71, 28, 20, 274);
            addButton(".", 33, 28, 96, 274);
            addButton("+", 33, 28, 134, 274);
    
            addButton("=", 33, 60, 172, 242);
        }
    
        double m, n;
        String k;
        boolean flag = true;
        boolean flag2 = false;
    
        private void addButton(String string, int i, int j, int x, int y) {
            final Button b = new Button(string);
            b.setLocation(x, y);
            b.setSize(i, j);
            b.setFont(new Font("标楷体", Font.BOLD, 15));
            b.setBackground(Color.pink);
            b.setForeground(Color.darkGray);
            b.addMouseListener(new MouseAdapter() {
                @Override
                public void mousePressed(MouseEvent e) {
                    counts();
    
                }
    
                private void counts() {
                    if (ta.getText().equals("") && (b.getActionCommand().equals("+") || b.getActionCommand().equals("-")
                            || b.getActionCommand().equals("*") || b.getActionCommand().equals("/")
                            || b.getActionCommand().equals("%") || b.getActionCommand().equals("1/x")
                            || b.getActionCommand().equals("="))) {
    
                    } else if (ta.getText().equals(".") && (b.getActionCommand().equals("+")
                            || b.getActionCommand().equals("-") || b.getActionCommand().equals("*")
                            || b.getActionCommand().equals("/") || b.getActionCommand().equals("%")
                            || b.getActionCommand().equals("1/x") || b.getActionCommand().equals("="))) {
    
                    } else {
                        if (b.getActionCommand().equals("+") || b.getActionCommand().equals("-")
                                || b.getActionCommand().equals("*") || b.getActionCommand().equals("%")
                                || b.getActionCommand().equals("1/x") || b.getActionCommand().equals("/")) {
                            if (flag2 = true) {
                                flag2 = false;
                            }
                            if (flag) {
                                n = new Double(ta.getText()).doubleValue();
                                flag = false;
                            } else {
                                if (k == "=") {
    
                                } else {
                                    m = new Double(ta.getText()).doubleValue();
                                    if (k == "-") {
                                        if (n == 0)
                                            n = m;
                                        else
                                            n = n - m;
                                    } else if (k == "+") {
                                        if (n == 0)
                                            n = m;
                                        else
                                            n = n + m;
                                    } else if (k == "*") {
                                        if (n == 0)
                                            n = m;
                                        else
                                            n = n * m;
                                    } else if (k == "%") {
                                        if (n == 0)
                                            n = m;
                                        else
                                            m = m * 100;
                                    } else if (k == "1/x") {
                                        if (n == 0)
                                            n = m;
                                        else
                                            n = 1 / m;
                                    } else if (k == "/") {
                                        if (n == 0)
                                            n = m;
                                        else
                                            n = n / m;
                                    }
                                }
                            }
                            k = b.getActionCommand();
                            ta.setText("");
                        } else if (b.getActionCommand().equals("=")) {
                            m = new Double(ta.getText()).doubleValue();
                            if (k == "+") {
                                ta.setText("");
                                ta.append(n + "+" + m);
                                ta.append(System.getProperty("line.separator"));
                                n = n + m;
                                ta.append("=" + n);
                            } else if (k == "-") {
                                ta.setText("");
                                ta.append(n + "-" + m);
                                ta.append(System.getProperty("line.separator"));
                                n = n - m;
                                ta.append("=" + n);
                            } else if (k == "*") {
                                ta.setText("");
                                ta.append(n + "*" + m);
                                ta.append(System.getProperty("line.separator"));
                                n = n * m;
                                ta.append("=" + n);
                            } else if (k == "%") {
                                ta.setText("");
                                ta.append("%" + m);
                                ta.append(System.getProperty("line.separator"));
                                m = m * 100;
                                ta.append("=" + m + "%");
                            } else if (k == "1/x") {
                                ta.setText("");
                                ta.append(1 + "/" + m);
                                ta.append(System.getProperty("line.separator"));
                                n = 1 / m;
                                ta.append("=" + n);
                            } else if (k == "/") {
                                ta.setText("");
                                ta.append(n + "/" + m);
                                ta.append(System.getProperty("line.separator"));
                                n = n / m;
                                ta.append("=" + n);
                            }
                            k = "=";
                            flag2 = true;
                        } else {
                            if (flag2) {
                                flag = true;
                                flag2 = false;
                                ta.setText("");
                                m = n = 0;
                            }
                            ta.append(b.getActionCommand());
                        }
                    }
                }
            });
            this.add(b);
        }
    
        private void SetTextAreas() {
            ta = new TextArea("0", 8, 52, 3);
            ta.setBackground(Color.lightGray);
            ta.setSize(190, 50);
            ta.setFont(new Font("标楷体", Font.BOLD, 15));
            ta.setLocation(20, 60);
            this.add(ta);
            tb = new TextArea("  DESIGN BY Alec", 8, 52, 3);
            tb.setBackground(Color.pink);
            tb.setSize(190, 25);
            tb.setFont(new Font("标楷体", Font.BOLD, 16));
            tb.setForeground(Color.blue);
            tb.setLocation(20, 130);
            this.add(ta);
            this.add(tb);
        }
    
        @SuppressWarnings("deprecation")
        private void SetMainFram() {
            this.setLayout(null);
            this.setSize(220, 310);
            this.setVisible(true);
            this.setLocation(310, 340);
            this.setResizable(false);
            ta.setEditable(false);
            tb.setEditable(false);
            this.setCursor(Cursor.HAND_CURSOR);
            this.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
    
        }
    }

     仅供参考

  • 相关阅读:
    安装VMware虚拟机的全过程以及基于Centos7下配置nodejs和mongodb (一)
    webpack入门1
    react心路历程
    JavaScript性能优化【转载】
    JavaScript中继承的实现
    Cookie机制和Session机制
    jQuery 最简化实现
    JavaScript 中的原型(总则)
    JS 数据类型转换以其他
    JavaScript 七种数据类型
  • 原文地址:https://www.cnblogs.com/ooo888ooo/p/12741532.html
Copyright © 2011-2022 走看看