前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java事件监听机制

Java事件监听机制

作者头像
学编程的小程
发布2023-10-11 15:55:08
2450
发布2023-10-11 15:55:08
举报
文章被收录于专栏:学习笔记ol

先进行专栏介绍

代码语言:javascript
复制
本专栏是自己学Java的旅途,纯手敲的代码,自己跟着黑马课程学习的,并加入一些自己的理解,对代码和笔记
进行适当修改。希望能对大家能有所帮助,同时也是请大家对我进行监督,对我写的代码进行建议,互相学习。
在这里插入图片描述
在这里插入图片描述

再插一句

代码语言:javascript
复制
有一段时间断更了,是在更新数据结构与算法专栏,有兴趣的可以去看一看,比较不错

开始喽

事件监听机制

代码语言:javascript
复制
Java中的事件监听机制是一种用于处理用户交互事件的机制。它允许开发人员在特定事件发生时执行特定的代
	码逻辑。
在这里插入图片描述
在这里插入图片描述
分析

在Java中,事件监听机制是基于 观察者模式实现的。

在这里插入图片描述
在这里插入图片描述
观察者模式
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
观察者模式是一种行为型设计模式,它定义了对象之间的一对多依赖关系,使得当一个对象的状态发生变化时,
所有依赖它的对象都会得到通知并自动更新。
观察者模式由以下几个角色组成:
代码语言:javascript
复制
1Subject(主题):主题是被观察的对象,它维护了一个观察者列表,并提供了用于添加、删除和通知观察者
	的方法。主题可以是一个接口或抽象类,具体的主题类实现了主题接口。
2、Observer(观察者):观察者是依赖于主题的对象,它定义了一个更新方法,当主题状态发生变化时,观察
	者会被通知并执行相应的更新操作。观察者可以是一个接口或抽象类,具体的观察者类实现了观察者接口。
3、ConcreteSubject(具体主题):具体主题是主题的具体实现类,它维护了一个状态,并在状态发生变化时
	通知观察者。具体主题类通常包含了观察者列表,并提供了添加、删除和通知观察者的方法。
4、ConcreteObserver(具体观察者):具体观察者是观察者的具体实现类,它实现了观察者接口中的更新方
	法。具体观察者类在收到通知后,根据具体的业务需求执行相应的更新操作。
在这里插入图片描述
在这里插入图片描述
观察者模式的工作流程如下:
代码语言:javascript
复制
1、主题对象维护观察者列表,并提供了添加、删除和通知观察者的方法。
2、观察者对象注册到主题对象上,成为主题对象的观察者。
3、当主题对象的状态发生变化时,它会遍历观察者列表,并调用每个观察者的更新方法。
4、每个观察者收到通知后,根据具体的业务需求执行相应的更新操作。
在这里插入图片描述
在这里插入图片描述
观察者模式的优点包括:
代码语言:javascript
复制
1、解耦:主题对象和观察者对象之间解耦,它们可以独立变化,互不影响。
2、可扩展性:可以动态地添加、删除观察者对象,使得系统具有良好的扩展性。
3、灵活性:观察者模式可以实现一对多的依赖关系,一个主题对象可以通知多个观察者对象。
观察者模式适用于以下场景:
代码语言:javascript
复制
当一个对象的改变需要同时改变其他对象的时候,可以使用观察者模式。
当一个抽象模型有两个方面,其中一个方面依赖于另一个方面时,可以使用观察者模式。
当一个对象必须通知其他对象,但又不希望与被通知的对象形成紧耦合关系时,可以使用观察者模式。
总结
代码语言:javascript
复制
观察者模式通过定义一对多的依赖关系,实现了对象之间的解耦和松耦合。它提供了一种灵活的方式来处理对
	象之间的通信和状态变化,使得系统具有更好的可扩展性和可维护性。
在这里插入图片描述
在这里插入图片描述
事件监听机制的工作流程如下:
代码语言:javascript
复制
定义事件源:事件源是触发事件的对象,它通常是一个类或接口。事件源需要提供注册和注销监听器的方法,
	并在适当的时候触发事件。
定义事件监听器接口:事件监听器接口定义了事件发生时要执行的方法。通常,事件监听器接口包含一个或多个
	事件处理方法。
实现事件监听器:根据定义的事件监听器接口,实现具体的事件监听器类。这些类负责处理事件发生时的逻辑
	操作。
注册事件监听器:在事件源上调用注册方法,将事件监听器对象注册到事件源上。这样,事件源就知道要通知哪
	些监听器。
触发事件:当事件源发生事件时,它会遍历已注册的监听器列表,并调用每个监听器的事件处理方法。这样,每
	个监听器都可以根据具体的业务需求执行相应的操作。
响应事件:每个监听器收到事件通知后,根据具体的业务需求执行相应的操作。这些操作可以包括更新界面、处
	理数据、发送通知等。
Java代码示例
代码语言:javascript
复制
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class crj {
    public static void main(String[] args) {
        JFrame jf=new JFrame();

        jf.setTitle("事件监听机制");
        jf.setSize(400,300);
        jf.setDefaultCloseOperation(3);
        jf.setLocationRelativeTo(null);
        jf.setAlwaysOnTop(true);
        jf.setLayout(null);

        //确定按钮
        JButton jButton=new JButton("你点我啊");
        jButton.setBounds(0,0,100,100);
        jf.add(jButton);

        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("你点我啊");
            }
        });

        jf.setVisible(true);
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 再插一句
  • 开始喽
    • 事件监听机制
      • 分析
      • 事件监听机制的工作流程如下:
      • Java代码示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档