• 计算器


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

    }

  • 相关阅读:
    javascript判断触发事件event的鼠标按钮
    解决IE8 Session共享问题
    SignalR 实现web浏览器客户端与服务端的推送功能
    MFC ActiveX控件与ATL ActiveX控件的比较 .
    rpm relevent operation record
    通过rpm包安装、配置及卸载mysql的详细过程 Richard Shen 运维/架构 51CTO技术博客
    instal python relevent cmds
    ubuntu日志的设置
    关于电信、网通检测ADSL共享上网的技术手段
    Simple usage of Python's logging module
  • 原文地址:https://www.cnblogs.com/langsblog/p/9231593.html
Copyright © 2020-2023  润新知