首页 > 编程语言 > 详细

Java事件模型

时间:2020-05-02 23:48:18      阅读:37      评论:0      收藏:0      [点我收藏+]
graph LR action(外部动作) eventSource((事件源)) event((事件)) eventListener((事件监听器)) eventHandler1((事件处理器1)) eventHandler2((事件处理器2)) eventHandler3((事件处理器...)) action --> |操作| eventSource eventSource --> |触发| event eventListener --> |注册到| eventSource event --> |传递| eventListener eventListener --> |调用| eventHandler1 eventListener --> |调用| eventHandler2 eventListener --> |调用| eventHandler3

具体代码

Frame frame = new Frame(); // 事件源
// 事件: WindowEvent 
WindowListener wl = new WindowListener() { // 事件监听器
    @Override // 事件处理器
    public void windowActivated(WindowEvent e) {}
    @Override // 事件处理器
    public void windowClosed(WindowEvent e) {}
    @Override // 事件处理器
    public void windowClosing(WindowEvent e) {
        f.dispose();
    }
    @Override // 事件处理器
    public void windowDeactivated(WindowEvent e) {}
    @Override // 事件处理器
    public void windowDeiconified(WindowEvent e) {}
    @Override // 事件处理器
    public void windowIconified(WindowEvent e) {}
    @Override // 事件处理器
    public void windowOpened(WindowEvent e) {}
};
// 注册事件监听器
frame.addWindowListener(wl);

为了简化编程,java将大量事件监听器简化成了事件适配器,即事件适配器对事件监听器进行空实现,也就是说实现的每个方法不写任何代码。

Frame frame = new Frame(); // 事件源
// 事件: WindowEvent 
WindowAdapter wa = new WindowAdapter() { // 事件适配器本身实现了事件监听器 
    @Override // 事件处理器
    public void windowClosing(WindowEvent e) {
        f.dispose();
    }
};
// 注册事件监听器
frame.addWindowListener(wa);

这样显然简洁了很多。

注意:除了只有一个方法的监听器,其它监听器都有适配器。

Java事件模型

原文:https://www.cnblogs.com/matroleox/p/12820014.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!