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

    package 计算器;
    import java.awt.BorderLayout; 
    import java.awt.Container; 
    import java.awt.GridLayout; 
    import java.awt.event.ActionEvent; 
    import java.awt.event.ActionListener; 
    import java.awt.event.KeyAdapter; 
    import java.awt.event.KeyEvent; 
     
    import javax.swing.JButton; 
    import javax.swing.JFrame; 
    import javax.swing.JPanel; 
    import javax.swing.JTextField; 
     
    public class Jisuanqi extends JFrame { 
         
        public static void main(String[] args) {  
         Jisuanqi frame = new Jisuanqi(); 
             
            frame.setTitle("计算器"); 
            frame.setSize(300,400);
            frame.setResizable(false); 
            frame.setDefaultCloseOperation(EXIT_ON_CLOSE);  
            frame.init();  
            frame.setVisible(true); 
        } 
         
        private void init()  
        { 
            textField = new JTextField();    
            textField.setEditable(false); 
            textField.setHorizontalAlignment (JTextField.RIGHT); 
            JPanel panel = new JPanel(); 
            panel.setLayout(new GridLayout(4, 4)); 
             
            Container container = getContentPane(); 
            container.add(textField, BorderLayout.NORTH); 
            container.add(panel, BorderLayout.CENTER); 
             
            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('/')); 
        } 
         
        public JButton useButton (final char key)  
        { 
            JButton button = new JButton(String.valueOf(key)); 
             
            button.addActionListener(new ActionListener() 
            { 
                public void actionPerformed(ActionEvent event) 
                { 
                    JButton btn = (JButton) event.getSource(); 
                    char key2 = btn.getText().charAt(0); 
                     
                    action(key2); 
                } 
            }); 
            button.addKeyListener(new KeyAdapter() 
            { 
                public void keyReleased(KeyEvent event) 
                { 
                    char key2 = event.getKeyChar (); 
                    action(key2); 
                } 
            }); 
             
            return button; 
        } 
         
        private void action(char key2) 
        { 
            if(reop) 
            { 
                textField.setText(""); 
                reop = false; 
            } 
             
            switch(key2) 
            { 
                case '+': 
                    a1 = Double.parseDouble(textField.getText()); 
                    textField.setText(""); 
                    operator = '+'; 
                    break; 
                case '-': 
                    a1 = Double.parseDouble(textField.getText()); 
                    textField.setText(""); 
                    operator = '-'; 
                    break; 
                case '*': 
                    a1= Double.parseDouble(textField.getText()); 
                    textField.setText(""); 
                    operator = '*'; 
                    break; 
                case '/': 
                     a1= Double.parseDouble(textField.getText());  
                    textField.setText(""); 
                    operator = '/'; 
                    break; 
                case '=': 
                    reop = true; 
                    a2 = Double.parseDouble(textField.getText()); 
                    switch(operator) 
                    { 
                        case '+': 
                            result = a1 + a2; 
                            break; 
                        case '-': 
                         result= a1 - a2; 
                            break; 
                        case '*': 
                         result = a1 * a2; 
                            break; 
                        case '/': 
                         result = a1 / a2; 
                            break; 
                        default: ; 
                    } 
                    textField.setText(String.valueOf(result)); 
                    break; 
               case '1': 
                case '2': 
                case '3': 
                case '4': 
                case '5': 
                case '6': 
                case '7': 
                case '8': 
                case '9': 
                case '0': 
                case '.': 
                    String text = textField.getText() + key2; 
                    textField.setText(text); 
                    break; 
                default: ; 
            } 
        } 
        private JTextField textField; 
        private double a1, a2, result; 
        private char operator; 
        private boolean reop = false; 
    }

    }

  • 相关阅读:
    C语言常用库函数
    UVA
    ctf pwn题目的部署
    关于MongoDB
    线程的阻塞 sleep() wait() yield()
    Java线程阻塞方法sleep()和wait()精炼详解
    Java并发编程:volatile关键字解析
    Netty之ChannelOption的各种参数之EpollChannelOption.SO_REUSEPORT
    netty全局分析1
    深入了解几种IO模型(阻塞非阻塞,同步异步)
  • 原文地址:https://www.cnblogs.com/langsblog/p/9231593.html
Copyright © 2011-2022 走看看