温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样使用java事件

发布时间:2026-09-15 19:39:48 来源:亿速云 阅读:84 作者:小樊 栏目:编程语言

在 Java 中,“事件(Event)”最常见于 GUI 编程(如 AWT / Swing / JavaFX),也广泛用于 自定义事件机制(观察者模式)。下面我分两部分讲:GUI 事件自定义事件,并给出示例。


一、Java GUI 中的事件(以 Swing 为例)

1️⃣ 核心概念

  • 事件源(Event Source):产生事件的对象(如按钮)
  • 事件对象(Event):描述发生了什么(如 ActionEvent
  • 事件监听器(Listener):处理事件的对象(如 ActionListener

2️⃣ 示例:按钮点击事件

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

public class EventDemo {
    public static void main(String[] args) {
        JFrame frame = new JFrame("事件示例");
        JButton button = new JButton("点我");

        // 注册监听器
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("按钮被点击了!");
            }
        });

        frame.add(button);
        frame.setSize(200, 100);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

3️⃣ 常见事件类型

事件 监听器
按钮点击 ActionListener
鼠标操作 MouseListener
键盘输入 KeyListener
窗口关闭 WindowListener

二、Java 自定义事件(观察者模式)

适合在 业务系统 中使用,比如“订单创建后发邮件”。

1️⃣ 定义事件类

public class OrderEvent {
    private String orderId;

    public OrderEvent(String orderId) {
        this.orderId = orderId;
    }

    public String getOrderId() {
        return orderId;
    }
}

2️⃣ 定义监听器接口

public interface OrderListener {
    void onOrderCreated(OrderEvent event);
}

3️⃣ 事件发布者

import java.util.*;

public class OrderService {
    private List<OrderListener> listeners = new ArrayList<>();

    public void addListener(OrderListener listener) {
        listeners.add(listener);
    }

    public void createOrder(String orderId) {
        System.out.println("创建订单:" + orderId);
        OrderEvent event = new OrderEvent(orderId);
        for (OrderListener l : listeners) {
            l.onOrderCreated(event);
        }
    }
}

4️⃣ 使用

public class Test {
    public static void main(String[] args) {
        OrderService service = new OrderService();
        service.addListener(e ->
            System.out.println("发送邮件,订单:" + e.getOrderId())
        );

        service.createOrder("1001");
    }
}

三、Spring 中的事件(进阶)

如果你用 Spring:

@EventListener
public void handleOrderEvent(OrderEvent event) {
}

ApplicationEventPublisher 发布事件。


总结

  • GUI 事件组件 + 监听器 + 事件对象
  • 自定义事件事件类 + 监听器 + 发布者
  • 核心思想解耦(谁发生,谁处理)

如果你是想了解 Swing / JavaFX / Spring 事件 的某一种,我可以专门展开讲。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI