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 {

Frame f = new Frame("简单计算器"); // 创建一个Frame对象f并设置标题为“简单计算器”
Panel p1 = new Panel(); // 创建一个Panel对象p1,用于放置文本框
Panel p2 = new Panel(); // 创建一个Panel对象p2,用于放置按钮

TextField tf = new TextField(20); // 创建一个TextField对象tf,并设置宽度为20个字符

Button bAdd = new Button("+"); // 创建加号按钮
Button bSubtract = new Button("-"); // 创建减号按钮
Button bMultiply = new Button("*"); // 创建乘号按钮
Button bDivide = new Button("/"); // 创建除号按钮
Button bClear = new Button("清零"); // 创建清零按钮

double num1, num2, result; // 定义两个操作数和结果变量

void init() {  // 初始化方法,布局界面并添加事件监听器

    tf.setEditable(false);  // 设置文本框不可编辑

    p1.add(tf);  // 将文本框添加到p1面板中

    ActionListener al = new ActionListener() {   // 定义一个ActionListener匿名内部类来处理按钮点击事件

        @Override
        public void actionPerformed(ActionEvent e) {  // 实现ActionListener接口的抽象方法

            if (e.getSource() == bClear) {  // 如果是清零按钮被点击了
                tf.setText("");  // 清空文本框内容
                num1 = num2 = result = 0;  // 将操作数和结果都设为0
            } else {   // 如果是其他运算符被点击了
                String s = tf.getText();   // 获取文本框中的内容

                try {
                    num1 = Double.parseDouble(s);   // 将字符串转化为double类型,作为第一个操作数
                } catch (NumberFormatException ex) {
                    tf.setText("格式错误");   // 如果转换失败,则显示“格式错误”信息在文本框中,并返回
                    return;
                }

                tf.setText("");   // 清空文本框内容

                if (e.getSource() == bAdd) {   // 判断哪个运算符被点击了,并进行相应的运算
                    result = num1;
                } else if (e.getSource() == bSubtract) {
                    result = num1;
                } else if (e.getSource() == bMultiply) {
                    result = num1;
                } else if (e.getSource() == bDivide) {
                    result = num1;
                }
            }
        }
    };

    bAdd.addActionListener(al);    // 将监听器注册到加号按钮上
    bSubtract.addActionListener(al);    // 将监听器注册到减号按钮上
    bMultiply.addActionListener(al);    // 将监听器注册到乘号按钮上
    bDivide.addActionListener(al);    // 将监听器注册到除号按钮上
    bClear.addActionListener(al);    // 将监听器注册到清零按钮上

    p2.setLayout(new GridLayout(4, 1));   // 设置p2的布局为4行1列的网格布局

    p2.add(bAdd);   // 将加号按钮添加到p2中
    p2.add(bSubtract);   // 将减号按钮添加到p2中
    p2.add(bMultiply);   // 将乘号按钮添加到p2中
    p2.add(bDivide);   // 将除号按钮添加到p2中

    f.add(p1, BorderLayout.NORTH);   // 将p1面板放置在窗口的北部位置
    f.add(p2, BorderLayout.CENTER);  // 将p2面板放置在窗口的中央位置
    f.add(bClear, BorderLayout.SOUTH);  // 将清零按钮放置在窗口的南部位置

    f.setSize(200, 150);  // 设置窗口大小为200*150像素
    f.setVisible(true);  // 显示窗口
}

public static void main(String[] args) {  // 主方法,创建Calculator对象并调用初始化方法init()

    new Calculator().init();
}

}

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?