在 Java 里,Event(事件) 本质上是一种对象,用来“描述发生了什么事情”,常见于 GUI 编程、框架回调、观察者模式 等场景。
下面从概念到例子给你讲清楚。
事件(Event) = 发生了某件事 + 相关描述信息
在 Java 中:
XXXEvent)产生事件的对象
例如:按钮 JButton
描述发生了什么
例如:ActionEvent
处理事件的对象
例如:ActionListener
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);
}
}
ActionEvent(事件对象)actionPerformed()(事件处理)Java 也允许你自己定义事件系统。
public class MyEvent {
private String message;
public MyEvent(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
public interface MyEventListener {
void onEvent(MyEvent event);
}
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);
}
}
}
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");
}
}
| 技术 | 说明 |
|---|---|
| AWT / Swing | GUI 事件(点击、键盘) |
| JavaFX | 更现代的 UI 事件 |
| Spring | ApplicationEvent |
| JavaEE / Jakarta | HttpSessionEvent 等 |
Java 中的 Event 就是“发生了某件事”的封装对象,由事件源发出,监听器接收并处理。
如果你愿意,我可以:
你想看哪一种?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。