温馨提示×

温馨提示×

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

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

java Event事件是什么

发布时间:2026-10-06 13:51:58 来源:亿速云 阅读:86 作者:小樊 栏目:编程语言

在 Java 里,Event(事件) 本质上是一种对象,用来“描述发生了什么事情”,常见于 GUI 编程、框架回调、观察者模式 等场景。

下面从概念到例子给你讲清楚。


一、Event 的核心概念

事件(Event) = 发生了某件事 + 相关描述信息

在 Java 中:

  • 事件通常是一个 类(通常是 XXXEvent)
  • 事件由 事件源(Event Source) 产生
  • 由 监听器(Listener) 接收并处理

二、典型结构(以 GUI 为例)

1️⃣ 事件源(Event Source)

产生事件的对象
例如:按钮 JButton

2️⃣ 事件对象(Event)

描述发生了什么
例如:ActionEvent

3️⃣ 监听器(Listener)

处理事件的对象
例如:ActionListener


三、一个最简单的例子(Swing)

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

public class EventDemo {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Event Example");
        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.setVisible(true);
    }
}

发生了什么?

  1. 用户点击按钮(事件源)
  2. Swing 创建 ActionEvent(事件对象)
  3. 调用 actionPerformed()(事件处理)

四、自定义 Event(观察者模式)

Java 也允许你自己定义事件系统。

1️⃣ 定义事件

public class MyEvent {
    private String message;

    public MyEvent(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }
}

2️⃣ 定义监听器

public interface MyEventListener {
    void onEvent(MyEvent event);
}

3️⃣ 事件源

import java.util.ArrayList;
import java.util.List;

public class EventSource {
    private List<MyEventListener> listeners = new ArrayList<>();

    public void addListener(MyEventListener l) {
        listeners.add(l);
    }

    public void fireEvent(String msg) {
        MyEvent event = new MyEvent(msg);
        for (MyEventListener l : listeners) {
            l.onEvent(event);
        }
    }
}

4️⃣ 使用

public class Test {
    public static void main(String[] args) {
        EventSource source = new EventSource();
        source.addListener(e -> {
            System.out.println("收到事件:" + e.getMessage());
        });

        source.fireEvent("Hello Event");
    }
}

五、常见 Event 相关技术

技术 说明
AWT / Swing GUI 事件(点击、键盘)
JavaFX 更现代的 UI 事件
Spring ApplicationEvent
JavaEE / Jakarta HttpSessionEvent 等

六、一句话总结

Java 中的 Event 就是“发生了某件事”的封装对象,由事件源发出,监听器接收并处理。

如果你愿意,我可以:

  • 用 Spring 事件 举例
  • 对比 Event vs Callback
  • 讲 事件驱动架构(EDA)

你想看哪一种?

向AI问一下细节

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

AI
助
手