15.1-全栈Java笔记:Java事件模型是什么?事件控制的过程有哪几步??

应用前边两节上一章节的内容,大家可以完成一个简单的界面,但是没有任何的功能,界面完全是静态的,如果要实现具体功能的话,必须要学习事件模型。

事件模型简介及常见事件模型

对于采用了图形用户界面的程序来说,事件控制是非常重要的。

一个源(事件源)产生一个事件并把它(事件对象)送到一个或多个监听器那里,监听器只是简单地等待,直到它收到一个事件,一旦事件被接收,监听器将处理这些事件。

一个事件源必须注册监听器以便监听器可以接收关于一个特定事件的通知。

每种类型的事件都有其自己的注册方法,一般形式为:

void addTypeListener(TypeListener e);

注意:

注册事件的方法名并不真的是addTypeListener,其中的Type是事件类型,根据不同的事件追加不同类型的监听,如:追加按钮按下事件的添加监听方法为:addActionListener(ActionEvent  e),而e是一个事件监听器的引用。

事件控制的过程

事件控制过程可以分为以下四步:

1. 监听器对象属于一个类的实例,这个类实现了一个特殊的接口,名为“监听者接口”(Listener interface)。

2. 事件源是一个对象,它可以注册一个或多个监听器对象,以便向其发送事件对象。

3. 事件源在发生事件时向所有注册的监听器发送事件对象。

4. 监听器对象根据事件对象中封装的信息来确定如何响应这个事件。

如果觉得这个过程比较抽象,那么我们看看这样一个场景:在城市的十字路口上为了监控交通违章,那么在路口上(事件源)就会安装一个监控摄像头(监听器对象),这个监控摄像头在有违章发生时(事件触发时)会自动捕获违章,然后传达到监控大厅,监控大厅根据违章情况作出相应的处理(事件响应,也可以说是事件处理,就是发生事件后做什么处理方式)。

那么我们不难发现这样一个事实:出现不同的事件需要用不同的事件类来捕获。如图1所示,为常用的事件类的体系结构。

我们再来看看事件类型的具体说明,如表1所示。

下节我们会对几种常用的事件类型进行详细介绍。



「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。

笔记包含从浅入深的六大部分:

A-Java入门阶段

B-数据库从入门到精通

C-手刃移动前端和Web前端

D-J2EE从了解到实战

E-Java高级框架精解

F-Linux和Hadoop

时间: 2024-10-26 21:00:52

15.1-全栈Java笔记:Java事件模型是什么?事件控制的过程有哪几步??的相关文章

我的全栈之路-Java基础之数据存储

我的全栈之路-Java基础之数据存储 我的全栈之路 2.1 标识符 标识符是在程序开发时给包,类.接口.注解,变量,方法命名的字符序列. 标识符在命名时需要遵守相关的规则和规范: 标识符的命名规则: 标识符不能是Java的关键字和保留字,关键字是Java中被赋予赋予特殊含义的单词,例如public static void等等.保留字是现有Java版本尚未使用,但是未来的Java版本可能会做关键字使用的单词,例如goto,const.但是可以包含关键字,保留字. 标识符可以由字母.数字.下划线组成

我的全栈之路-Java架构师技术栈

我的全栈之路-Java架构师技术栈 我的全栈之路 JavaSE篇 Java概述与开发环境搭建 Java数据存储 Java数据计算 Java程序流程控制 Java数组 Java面向对象程序设计(上) Java面向对象程序设计(中) Java面向对象程序设计(下) Java常用API 集合 泛型 异常处理 注解 IO/BIO/NIO AIO网络框架tio设计与实现 多线程 网络编程 反射和动态代理 日志 XML 正则表达式 Java语言新特性实践 数据库编程(JDBC+MySQL) 数据结构 算法

我的全栈之路-Java基础之macOS+Visual Studio Code开发Java程序

我的全栈之路-Java基础之macOS+Visual Studio Code开发Java程序 我的全栈之路 3.1 开发环境说明 首先说明下使用软件的版本,操作系统是基于macOS10.14.5,然后在macOS上安装了JDK11.03,如果想要了解macOS下JDK的安装,可以参考我的全栈之路-Java基础之macOS安装JDK,编辑器选用了微软公司开源的Visual Studio Code. 软件名称 软件版本 操作系统 macOS10.14.5 JDK JDK11.0.3 编辑器 Visu

js事件模型与自定义事件

JavaScript 一个最简单的事件模型,需要有事件绑定与触发,也许还要有事件删除. 1 var eventModel = { 2 list: {}, 3 4 bind: function () { 5 var args = [].slice.apply(arguments), 6 type = args[0], 7 handlers = args.slice(1); 8 9 if (typeof type === 'string' && handlers.length > 0)

12.3-全栈Java笔记:Java网络编程(一)

Java为了可移植性,不允许直接调用操作系统,而是由java.net包来提供网络功能.Java虚拟机负责提供与操作系统的实际连接.  InetAddress 作用:封装计算机的IP地址和DNS(没有端口信息!). 特点:这个类没有构造函数.如果要得到对象,只能通过静态方法:getLocalHost.getByName. getAllByName. getAddress.getHostName. [示例1]使用getLocalHost方法创建InetAddress对象 InetAddress ad

14.1-全栈Java笔记: Java语言中GUI到底是神马鬼?| AWT | Swing

到目前为止,我们在Java中编写的基本都是基于控制台的程序:而Java编程语言之所以如此流行的一个主要原因之一,就是因为它支持图形用户界面功能,即GUI(Graphical User Interface). GUI(Graphical User Interface)即图形用户界面,就是应用程序提供给我们用户操作的图形界面,包括窗口.菜单.工具栏及其它多种图形界面元素,如文本框.按钮.列表框.对话框等.它能使应用程序显得更加友好. 学习Java的GUI编程主要是要掌握两个包,分别是:java.aw

14.5-全栈Java笔记:java.awt这些布局怎么写?|流式|边界|网格

布局管理器 读者会发现,如果使用坐标定位法(空布局),在一个比较复杂的界面上定位每个控件的坐标是一个非常麻烦的工作,而且在界面大小发生改变时,控件的绝对位置也不会随之发生改变.那么如果我们想让用户界面上的组件可以按照不同的方式进行排列怎么办?例如:可以依序水平排列,或者按网格方式进行排列等,其实每种排列方案都是指组件的一种"布局",要管理这些布局,就需要本节学习的布局管理器. 管理布局的类由java.awt包来提供,布局管理器是一组实现java.awt.LayoutManager接口的

12.7-全栈Java笔记:Java网络编程(五)

UDP通讯的实现 1.DatagramSocket:用于发送或接收数据包 当服务器要向客户端发送数据时,需要在服务器端产生一个DatagramSocket对象,在客户端产生一个DatagramSocket对象.服务器端的DatagramSocket将DatagramPacket发送到网络上,然后被客户端的DatagramSocket接收. DatagramSocket有两种构造函数.一种是无需任何参数的,常用于客户端.另一种需要指定端口,常用于服务器. 常用方法:send.receive. cl

12.4-全栈Java笔记:Java网络编程(二)

 基于TCP协议的Socket编程和通信 在网络通讯中,第一次主动发起通讯的程序被称作客户端(Client)程序,简称客户端,而在第一次通讯中等待连接的程序被称作服务器端(Server)程序,简称服务器.一旦通讯建立,则客户端和服务器端完全一样,没有本质的区别. "请求-响应"模式: Socket类:发送TCP消息 ServerSocket类:创建服务器 套接字是一种进程间的数据交换机制.这些进程既可以在同一机器上,也可以在通过网络连接的不同机器上.换句话说,套接字起到通信端点的作用.