ZBLOG

import java.awt.*; // 引入awt包中的所有类 import java.awt.event.AdjustmentEvent; // 引入awt.event包中的AdjustmentEvent类 import java.awt.event.AdjustmentListener; // 引入awt.event包中的AdjustmentListener类 public class E23 { // 定义E23类     Frame f = new Frame("调

import java.awt.*; // 引入awt包中的所有类

import java.awt.event.ActionEvent; // 引入awt.event包中的ActionEvent类

import java.awt.event.ActionListener; // 引入awt.event包中的ActionListener类

public class Calculator { // 定义Calculator类

    Frame f = new Frame(“计算器”); // 创建一个Frame对象f并设置标题为“计算器”

    TextField tf = new TextField(); // 创建一个TextField对象tf

    Panel p1 = new Panel(); // 创建一个Panel对象p1,用于放置数字按钮和运算符按钮

    Button[] nums = new Button[10]; // 创建一个长度为10的Button数组nums,用于存放数字按钮     Button add = new Button(“+”); // 创建一个加号按钮add     Button minus = new Button(“-”); // 创建一个减号按钮minus     Button multiply = new Button(“*”); // 创建一个乘号按钮multiply     Button divide = new Button(“/”); // 创建一个除号按钮divide     Button equal = new Button(“=”); // 创建一个等号按钮equal     Button clear = new Button(“C”); // 创建一个清零按钮clear

    String firstNum=“”;             // 存储第一次输入的数字

String secondNum="";             // 存储第二次输入的数字
String operator="";                 // 存储运算符 

ActionListener listener=new ActionListener(){       
    public void actionPerformed(ActionEvent e){       
        String actionCommand=e.getActionCommand();       
        if(actionCommand.equals("C")){       
            tf.setText("");       
            firstNum="";       
            secondNum="";       
            operator="";       
        }else if(actionCommand.equals("+")||actionCommand.equals("-")||actionCommand.equals("*")||actionCommand.equals("/")){        
            operator=actionCommand;                
            firstNum=tf.getText().trim();            
            tf.setText("");                
        }else if(actionCommand.equals("=")){          
            secondNum=tf.getText().trim();            
            double a=Double.parseDouble(firstNum);            
            double b=Double.parseDouble(secondNum);            
            double result=0;                
            switch(operator){            
                case "+":result=a+b;break;            
                case "-":result=a-b;break;            
                case "*":result=a*b;break;            
                case "/":result=a/b;break;            } 
                 tf.setText(result+"");   // 将计算结果输出到文本框中

        }else{        
             tf.setText(tf.getText()+actionCommand);        
        }
    }
};

    void init() { // 定义一个初始化方法

        p1.setLayout(new GridLayout(4,4,5,5)); // 设置p1的布局为4行4列的GridLayout,并指定行间距为5,列间距为5

        for(int i=0;i<10;i++){ // 循环创建数字按钮,并将其添加到p1中             nums[i] = new Button(“”+i);             p1.add(nums[i]);             nums[i].addActionListener(listener);         }

        add.addActionListener(listener); // 将listener对象注册为加号按钮的事件监听器         minus.addActionListener(listener); // 将listener对象注册为减号按钮的事件监听器         multiply.addActionListener(listener); // 将listener对象注册为乘号按钮的事件监听器         divide.addActionListener(listener); // 将listener对象注册为除号按钮的事件监听器

    equal.addActionListener(listener);             // 将listener对象注册为等号按钮的事件监听器 
    clear.addActionListener(listener);             // 将listener对象注册为清零按钮的事件监听器

        p1.add(add); // 将加号按钮添加到p1中         p1.add(minus); // 将减号按钮添加到p1中         p1.add(multiply); // 将乘号按钮添加到p1中         p1.add(divide); // 将除号按钮添加到p1中

    tf.setEditable(false);

        f.add(tf,BorderLayout.NORTH); // 将tf添加到f窗口的北部         f.add(p1,BorderLayout.CENTER); // 将p1添加到f窗口的中间

    Panel p2=new Panel();
    p2.setLayout(new GridLayout(4,2,5,5));
    p2.add(equal);
    p2.add(clear);

    f.add(p2,BorderLayout.EAST);

        f.setSize(300,250); // 设置f窗口的大小为300*250像素         f.setVisible(true); // 设置f窗口可见     }

    public static void main(String[] args) { // 主方法

        new Calculator().init(); // 创建一个Calculator对象并调用初始化方法     } }

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=957

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?