import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Calculator extends JFrame implements ActionListener {
    private JLabel label1, label2, label3;
    private JTextField textField1, textField2, textField3;
    private JButton btnAdd, btnSub, btnMul, btnDiv;

    public Calculator() {
        setTitle('计算');
        setLayout(new FlowLayout());

        label1 = new JLabel('数字1:');
        add(label1);

        textField1 = new JTextField(10);
        add(textField1);

        label2 = new JLabel('数字2:');
        add(label2);

        textField2 = new JTextField(10);
        add(textField2);

        label3 = new JLabel('结果:');
        add(label3);

        textField3 = new JTextField(10);
        textField3.setEditable(false);
        add(textField3);

        btnAdd = new JButton('加');
        btnAdd.addActionListener(this);
        add(btnAdd);

        btnSub = new JButton('差');
        btnSub.addActionListener(this);
        add(btnSub);

        btnMul = new JButton('积');
        btnMul.addActionListener(this);
        add(btnMul);

        btnDiv = new JButton('除');
        btnDiv.addActionListener(this);
        add(btnDiv);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300, 150);
        setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        double num1 = Double.parseDouble(textField1.getText());
        double num2 = Double.parseDouble(textField2.getText());
        double result = 0;

        if (e.getSource() == btnAdd) {
            result = num1 + num2;
        } else if (e.getSource() == btnSub) {
            result = num1 - num2;
        } else if (e.getSource() == btnMul) {
            result = num1 * num2;
        } else if (e.getSource() == btnDiv) {
            result = num1 / num2;
        }

        textField3.setText(String.valueOf(result));
    }

    public static void main(String[] args) {
        new Calculator();
    }
}

运行程序后,效果如下图所示:

Calculator.png

代码解释:

  1. 导入必要的包:

    • java.awt.*:提供图形用户界面组件的类,如标签、文本框、按钮等。
    • java.awt.event.*:提供处理事件的类,如按钮点击事件。
    • javax.swing.*:提供更高级的图形用户界面组件的类,如 JFrame、JButton、JTextField 等。
  2. 创建Calculator类:

    • 继承 JFrame 类,表示这是一个窗口程序。
    • 实现 ActionListener 接口,用于处理按钮点击事件。
  3. 定义成员变量:

    • label1, label2, label3:用于显示文字提示的 JLabel 对象。
    • textField1, textField2, textField3:用于输入数字和显示结果的 JTextField 对象。
    • btnAdd, btnSub, btnMul, btnDiv:用于执行加减乘除运算的 JButton 对象。
  4. 构造函数:

    • 设置窗口标题为 '计算'。
    • 使用 FlowLayout 布局管理器,将组件以从左到右、从上到下的顺序排列。
    • 创建 JLabel 和 JTextField 对象,并添加到窗口中。
    • 创建 JButton 对象,添加 ActionListener 监听器,并添加到窗口中。
    • 设置窗口大小、关闭模式并显示窗口。
  5. actionPerformed 方法:

    • 获取用户在文本框中输入的两个数字,转换为 double 类型。
    • 根据点击的按钮执行相应的运算。
    • 将运算结果显示在第三个文本框中。
  6. main 方法:

    • 创建 Calculator 对象,启动程序。

程序运行效果:

程序运行后,将显示一个包含两个文本框、四个按钮和一个结果文本框的简单计算器窗口。用户可以在文本框中输入数字,点击相应的按钮进行运算,结果将显示在结果文本框中。

总结:

本教程通过一个简单的计算器程序,演示了如何使用 Java Swing 框架创建图形用户界面,以及如何使用 ActionListener 处理按钮点击事件。您可以根据需要修改代码,添加更多功能和组件,创建更复杂的图形用户界面程序。

Java Swing 计算器程序实现 - 使用 FlowLayout 布局

原文地址: https://www.cveoy.top/t/topic/oBVi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录