zoukankan      html  css  js  c++  java
  • java初学者编译简单的计算机

    package com.yj.test;
    
    import java.awt.BorderLayout;
    import java.awt.Font;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    
    public class CaculateFrame extends JFrame{
    
        private JPanel content,panel;
        private JTextField txtInput;
         //记录运算符操作
        private String operation;
        private double v1,v2,result;
        // 一次计算的开关
        private boolean flag = false; 
        
        public CaculateFrame() {
            this.setTitle("计算器");
            //设置位置和大小
            this.setBounds(300, 200, 300, 300);
            
            txtInput = new JTextField(20);
            txtInput.setHorizontalAlignment(JTextField.RIGHT);
            Font f = new Font("微软雅黑",Font.BOLD,20);
            txtInput.setFont(f);
            
            content = new JPanel();
            content.setLayout(new BorderLayout());
            
            content.add(txtInput,BorderLayout.NORTH);
            
            panel = new JPanel();
            panel.setLayout(new GridLayout(4,4,5,5));
            
            panel.add(useButton("7"));
            panel.add(useButton("8"));
            panel.add(useButton("9"));
            panel.add(useButton("/"));
            
            panel.add(useButton("4"));
            panel.add(useButton("5"));
            panel.add(useButton("6"));
            panel.add(useButton("*"));
            
            panel.add(useButton("1"));
            panel.add(useButton("2"));
            panel.add(useButton("3"));
            panel.add(useButton("-"));
            
            panel.add(useButton("0"));
            panel.add(useButton("."));
            panel.add(useButton("="));
            panel.add(useButton("+"));
            
            content.add(panel,BorderLayout.CENTER);
            this.add(content);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
        private JButton useButton(String key) {
            JButton btn = new JButton(key);
            btn.addActionListener(new ActionListener() {
                //事件是由哪个控件发出的,通通都记录在ActionEvent这个对象中
                public void actionPerformed(ActionEvent e) {
                    //根据按钮上面不同的值,应该做不同的操作
                    myAction(key);
                }
            });
            return btn;
        }
        
        private void myAction(String key) {
            if(flag) {
                txtInput.setText("");
                flag = false;
            }
            switch(key) {
            case "0":
            case "1":
            case "2":
            case "3":
            case "4":
            case "5":
            case "6":
            case "7":
            case "8":
            case "9":
            case ".":
                if(txtInput.getText() == null || txtInput.getText().equals("")) {
                    if(key.equals("0")) {
                        return;
                    }
                    if(key.equals(".")) {
                        txtInput.setText("0.");
                        return;
                    }
                }if(txtInput.getText().indexOf(".") != -1 && key.equals(".")) {
                    return;
                }
                txtInput.setText(txtInput.getText() + key);
                break;
            case "+":
                this.operation = "+";
                
                if(txtInput.getText() == null || txtInput.getText().equals("")) {
                    v1 = 0;
                }else {
                    //转换为double类型
                    v1 = Double.parseDouble(txtInput.getText());
                }
                txtInput.setText("");
                break;
            case "-":
                this.operation = "-";
                if(txtInput.getText() == null || txtInput.getText().equals("")) {
                    v1 = 0;
                }else {
                    //转换为double类型
                    v1 = Double.parseDouble(txtInput.getText());
                }
                txtInput.setText("");
                break;
            case "*":
                this.operation = "*";
                if(txtInput.getText() == null || txtInput.getText().equals("")) {
                    v1 = 0;
                }else {
                    //转换为double类型
                    v1 = Double.parseDouble(txtInput.getText());
                }
                txtInput.setText("");
                break;
            case "/":
                this.operation = "/";
                if(txtInput.getText() == null || txtInput.getText().equals("")) {
                    v1 = 0;
                }else {
                    //转换为double类型
                    v1 = Double.parseDouble(txtInput.getText());
                }
                txtInput.setText("");
                break;
            case "=":
                if(txtInput.getText() == null || txtInput.getText().equals("")) {
                    v2 = 0;
                }else {
                    //转换为double类型
                    v2 = Double.parseDouble(txtInput.getText());
                }
                switch(this.operation) {
                    case "+":
                        result = v1 + v2;
                        break;
                    case "-":
                        result = v1 - v2;
                        break;
                    case "*":
                        result = v1 * v2;
                        break;
                    case "/":
                        if (v2 == 0) {
                            return;
                        }
                        result = v1 / v2;
                        break;
                }
                txtInput.setText(String.valueOf(result));
                v1 = 0;
                v2 = 0;
                result = 0;
                flag = true;
            }
        }
    }

    计算机测试显示窗口 :

    package com.yj.test;
    
    public class Test {
    
        public static void main(String[] args) {
            CaculateFrame cf = new CaculateFrame();
            cf.setVisible(true);
        }
    
    }
  • 相关阅读:
    Python正则表达式
    机器学习--------SVM
    tensor内部结构
    Tensor类型
    Tensor索引操作
    常用的Tensor操作
    Tensor基本操作
    神经网络
    Autograd:自动微分
    nginx之fastcgi配置
  • 原文地址:https://www.cnblogs.com/suger-4/p/12052050.html
Copyright © 2011-2022 走看看