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

     仅供参考

  • 相关阅读:
    【SQL Server学习笔记】Service Broker创建异步的、数据驱动的消息应用程序
    记录几句不错的话
    DBA最缺的不是技术
    小数点引起的数据类型转换问题
    hdu 3062 2SAT最基础题
    POJ 1679 判断最小生成树是否唯一
    POJ 1459 构图+最大流(Edmond_karp模版)
    POJ 3522 最大边与最小边差值最小的生成树
    POJ 1659 根据度序列构图
    POJ 1273 求最大流(Edmond_karp模板题)
  • 原文地址:https://www.cnblogs.com/ooo888ooo/p/12741532.html
Copyright © 2011-2022 走看看