这里提供一个简单的计算器实现,只包含加减乘除和清零功能。代码如下:
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();
}
}


        
        
        
        
        
        
        
        
        
        
                
                
                
                
                
                