Java程序设计基础__第14章_事件处理
JAVA事件处理机制

14
使用事件监听器类
import java.awt.*; public class TestButton{ public static void main(String args[ ]) { Frame f = new Frame(“Test”); Button b = new Button(“Press Me!”); b.addActionListener(new ButtonHandler( )); f.add(b, “Center”); f.pack( ); f.setVisible(true) ; } }
12
事件监听器类的编写要点
事件监听器类应该包括以下两部分内容: 事件监听器类应该包括以下两部分内容: 1.在事件监听器类的声明中指定要实现的监听器接口名,如: 在事件监听器类的声明中指定要实现的监听器接口名, 在事件监听器类的声明中指定要实现的监听器接口名 public class MyListener implements XxxListener { … } 2.实现监听器接口中的事件处理方法,如: 实现监听器接口中的事件处理方法, 实现监听器接口中的事件处理方法 public void 事件处理方法名(XxxEvent e) { ...//处理某个事件的代码... } 然后,在一个或多个组件上可以进行监听器类的实例的注册。 然后,在一个或多个组件上可以进行监听器类的实例的注册。如: 组件对象.addXxxListener(MyListener对象);
5
事件处理机制的几个重要概念
注册事件监听器
为了能够让事件监听器检查某个组件(事件源) 是否发生了某些事件,并且在发生时激活事件 处理器进行相应的处理,必须在事件源上注册 事件监听器。这是通过使用事件源组件的以下 方法来完成的:
《Java程序设计基础》课程标准

《Java程序设计基础》课程标准一、课程说明二、课程定位《Java程序设计基础》课程是面向软件与信息服务专业学生开设的必修专业课。
通过本课程的学习,能使学生掌握程序设计的基本思想与方法,掌握面向对象编程技术,常用系统类使用,图形用户界面设计,图形处理,多媒体处理,异常处理,文件和流处理,多线程技术和网络编程技术,为学生后续知识(如:Android开发技术)的学习打下基础,同时也为毕业后从事相关专业职业岗位工作具备基本计算机应用能力打下坚实的基础。
三、设计思路《Java程序设计基础》是一门实践性很强的课。
Java语言作为一门经典的面向对象高级程序设计语言其优势在于网络程序设计。
《Java程序设计基础》课程主要侧重于面向对象程序设计和简单网络程序设计实践能力的培养。
该课程的任务,不只是为了要求学生学会使用某种特定的语言,更重要的是要求学生学习面向对象的软件设计思想,以此拓展学生的软件设计的思维空间,训练学生的软件设计的实际开发能力。
在教学过程中注重培养提高学生的职业岗位技能和职业素质,力求达到岗位技能和职业标准。
教学要求在每一章教学内容之后给出,大体分为三个层次:了解、掌握和熟练掌握。
它们的含义大致为:了解就是掌握概念,掌握就是能够理解和分析现有知识,熟练掌握就是会运用所学知识解决实际问题。
四、课程培养目标(一)专业能力1.通过学习使得学生掌握Java开发工具,掌握面向对象程序的基本结构,能够完成基本类的设计和应用。
2.掌握程序设计的基础:基本的数据类型,运算符、表达式和语句。
3.掌握程序设计的结构、设计方法。
4.掌握数组和字符串的使用。
5.掌握继承的概念、能够正确地实现继承。
6.能够准确地理解接口,掌握接口的设计和实现方法。
7.理解异常处理的概念,能够准确地应用异常的处理方法,在未来工作中处理不同异常。
8.掌握集合类的概念和使用方法。
9.掌握图形界面的设计方法,掌握不同组件的功能和使用方法,掌握布局的设计方法。
事件处理4

基本概念
事件源(event source):产生事件的对象。如在 一个按钮上单击鼠标时,该按钮是事件源,会产 生一个ActionEvent类型的事件。
事件监听者(Listener):Java程序把事件进行处理 的方法放在一个类对象中,这个类对象就是事件 监听者。事件源通过调用相应的方法将某个对象 设置为自己的监听者,监听者有专门的方法来处 理事件。
常用方法:
public String getActionCommand()返回与此动作相关的命 令字符串。
public long getWhen()返回发生此事件时的时间戳。 public int getModifiers()返回发生此动作事件期间按下的组
合键。 public Object getSource() 最初发生 Event 的对象。
} public static void main(String[] args){ GUIDemo8 d=new GUIDemo8(); }
}
选项事件类 ItemEvent
当用户在窗口中的带有可选择功能的组件中进行 选取操作时所发生的事件.
选项事件ItemEvent的监听者是ItemListener. 该接口中提供的事件处理方法只有一个 itemStateChanged(ItemEvent e),当组件中 的选项状态改变时,将调用该方法.
public GUIDemo8() { jta=new JTextArea(); jp1=new JPanel(); String[] chatters={"红红","白白","蓝蓝"}; jcb=new JComboBox(chatters); jtf=new JTextField(10); jb=new JButton("发送"); jsp=new JScrollPane(jta);
Java开发基础 PPT课件

大纲
接口与抽象类的选择
☞ 克隆及其注意事项
接口与回调 内部类、局部类、匿名类 JDK的Proxy与CGLib的动态代理区别
克隆及其注意事项
浅克隆与深克隆
默认实现是浅克隆(本地方法实现)(java.util.AbstractMap默 认实现是浅克隆)
如果原始对象与浅克隆对象共享的子对象是不可变的,则不 会产生负面问题。
反射
允许程序在运行时透过Reflection APIs取得任何一个已知名称的class 的内部信息,并可于运行时改变fields内容或唤起 methods。
可动态获取的内容包括
modifiers(诸如public, static ) superclass(例如Object) interfaces(例如Cloneable fields和methods等
的属性 Java 中所有的对象都继承至 ng.Object ,因此都拥有
toString() , equals() ,wait() 等方法
继承的约束
不能实现多继承 父类提供了参数构造函数,子类必须实现 子类不能降低父类方法的可见域 子类不能抛出比父类构造函数或方法更多的异常 子类不能扩展父类的 final 方法
象类不应该依赖于其细节,细节。 接口隔离原则(ISP):不应该强迫客户依赖于它们不用的方
法
类设计基本原则(续)
包设计的基本原则
包内聚性原则(包粒度) 重用发布等价原则(REP):重用的粒度就是发布的粒度。 共同重用原则(CRP):一个包中的所有类应该是共同重用的。 如果重用了包中的一个类,那么就要重用包中的所有类。 共同封闭原则(CCP):包中的所有类对于同一类性质的变化应 该是共同封闭的。一个变化若对一个包产生影响,则将对该包中 的所有类产生影响,而对于其它的包不造成任何影响。 考虑可重用性与可开发性的平衡。
java基础教案(含实验内容)

课程名称:java程序设计时间:2015-2016学年第二学期授课教师:****授课班级:151软件(30人)、151计网(25人)Java程序设计:第一章:Java语言概述2课时第二章:java语言基础4课时第三章流程控制10课时第四章数组4课时第五章字符串2课时第六章类及对象4课时第七章java语言类的特性12课时第八章继承、抽象类和接口22课时复习、机动4课时合计:64课时推荐用书(图):1、Java程序设计基础(第4版)实验指导邹林达陈国君主编清华大学出版社ISBN 978—7—302—35279—22、Java程序设计基础(第4版)陈国君主编清华大学出版ISBN 978—7—302-33142-1Java程序设计授课计划:第1周第一章:Java语言概述2课时2课时第1周第二章:java语言基础—数据类型2课时第2周第二章:java语言基础—运算符及表达式2课时4课时第2周第三章流程控制—选择结构2课时第3周第三章流程控制-选择结构之多分支2课时第3周第三章流程控制-while循环嵌套2课时第4周第三章流程控制-for循环嵌套2课时第4周第三章流程控制-循环嵌套2课时10课时第5周第四章数组-一维数组2课时第一章:Java语言概述(2课时)教学目标:●课程所讲述的内容●Java语言的由来●Java语言的版本说明●Java语言的跨平台●Java开发环境配置教学重难点:●配置开发环境➢什么是Java语言:java语言的发展及开发环境➢Java语言的基本结构:java语言的基本结构➢Java语言的基本要素:java基本语法/类及对象/继承及接口✓Java语言高级知识:➢异常、IO、多线程➢Java异常处理及捕获机制➢Java输入及输出流➢Java多线程➢Java图形用户组建Swing类2.计算机语言发展的四个阶段1)机器语言2)汇编语言3)高级语言4)结构化程序设计语言3.java发展背景1)sun公司在很多领域有前瞻性,提前预判到一些“科技”及人类生活发展的要素。
《Java基础程序设计》_课后习题

第一章思考题】1、简述path 环境变量的作用。
2、请说说你对JVM 的理解。
答案】1、path 环境变量是系统环境变量中的一种,它用于保存一系列可执行文件的路径,每个路径之间以分号分隔。
当在命令行窗口运行一个可执行文件时,操作系统首先会在当前目录下查找是否存在该文件,如果不存在会继续在path 环境变量中定义的路径下去寻找这个文件,如果仍未找到,系统会报错。
2、JVM 是Java Virtual Machine 的缩写,全称是Java 虚拟机。
Java 语言的一个非常重要的特性就是跨平台性,而Java 虚拟机是实现这一特性的关键。
不同的操作系统需要使用不同版本的虚拟机,这种方式使得Java语言能够“一次编写,到处运行”。
Java语言编译程序只需生成在Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
第二章【思考题】1、请简述& 与&& 的区别。
2、简述break、continue 和return 语句的区别。
【答案】1、&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
当运算符“ &”和“ && ”的右边为表达式时,使用“ &”进行运算,不论左边为true 或者false,右边的表达式都会进行运算。
如果使用" && ”进行运算,当左边为false时,右边的表达式则不会进行运算,因此“ && ”被称作短路与。
2、break 语句:在switch 条件语句和循环语句中都可以使用break 语句。
当它出现在switch 条件语句中时,作用是终止某个case并跳出switch结构。
第13章事件处理(第4版)

实现上述的接口,针对想要捕获的事件编写方法代码 。如要捕获单击按钮事件,就要为ActionListener接口 里的actionPerformed()方法编写代码。
为事件监听者创建一个对象,让自己的组件和方法完 成对它的注册,方法是在监听者接口的名字里加入一 个前缀“add”,如addActionListener()
待用户通过鼠标、键盘给它通知(消息驱动), 它再根据这个通知的内容进行相应的处理(事件 驱动)。 通常一个键盘或鼠标操作会引发一个系统预先定 义好的事件,用户只需编写代码,定义每个特定 事件发生时程序应做出何种响应即可。
3
13.1 委托事件处理
事件(event):用户使用鼠标或键盘对窗口中的组 件进行交互时所发生的事情。对这些事件做出响 应的程序,称为事件处理程序(Event Handler)。
见教材例13.5
20
13.6 文本组件及相应的事件处理
文本组件所触发的事件主要有动作事件 ActionEvent和文本变化事件CaretEvent 。 见教材例13.6
21
13.7 窗口组件及窗口事件处理
Window类的任何子类都可能触发下列的窗口事 件:打开窗口、正在关闭窗口、关闭窗口、激活窗 口、变成非活动窗口、最小化窗口和还原窗口。 Window类常用方法见教材表13.8
5
13.1 委托事件处理
Java语言规定:为了让监听者能对事件源发生的 事件进行处理,创建该监听者对象的类必须声明 实现相应的监听者接口或继承相应的适配类,即 必须在类体中具体定义该接口中所有方法的方法 体或覆盖适配器类中的相应方法,以供监听者自 动调用相应事件处理方法来完成对应事件的任务 ,这些处理事件的方法就是事件处理程序。
JCheckBoxMenuItem类的构造方法及常用方法 见教材表13.30、13.31。
Java Web程序设计任务教程第14章 传智书城前台程序设计

选购商品 继续购物 提示页面 否 是否登录 清空购物车 是 查看购物车 结算入口 填写订单信息 生成订单信息 在线支付
14.2 购物车模块
【任务目标】 通过所学知识和购物车功能及流程的描述,实现在购物车中添加商品和删除购 物车中指定商品的功能。 【实现步骤】
①向购物车中添加商品
②删除购物车中指定商品
购物车模块
添 加 选 购 的 新 商 品
自 动 更 新 商 品 数 量
清 空 购 物 车
删 除 购 物 车 中 单 件 商 品
自 动 调 整 商 品 总 价 格
生 成 订 单 信 息
14.2 购物车模块
购物车模块包括管理购物车中的商品和生成订单信息的功能,下面通过一幅图
来描述购物车的功能流程,具体如下图所示。
进入主页选购商品是否登录查看购物车继续购物清空购物车结算入口提示页面生成订单信息填写订单信息用户在线支付142购物车模块任务目标通过所学知识和购物车功能及流程的描述实现在购物车中添加商品和删除购物车中指定商品的功能
第十四章 传智书城前台程序设计
• • •
用户注册和登录模块 购物车模块 图书信息查询模块
14.1 用户注册和登录模块
【任务目标】 在传智书城网站上,用户只有注册账号并登录后才可以购买图书,那么首次进 入网站的用户就需要先注册账号。 【实现步骤】
①编写注册页面
②创建Servlet ③编写Service层方法 ④创建邮件工具类
14.1 用户注册和登录模块
案例代码
任务案例
接下来,通过具体代码实现
14.2 购物车模块
案例代码
任务案例
接下来,通过具体代码实现
购物车的基本功能,请查看教材 【任务14-3】。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
14.1 委托事件模型
委托事件模型的工作原理:
10
14.1 委托事件模型
让包含“事件源”的对象来担任监听者 如何编写事件处理程序?见教材中例13.1。 为组件增加事件监听者的方法:由于每一个事 件类型都有一个相应的监听者接口,通常名为 XXXListener,其中XXX代表它所处理的事件 类型。在定义类时要实现事该件接源对口。 监听者有专门的方法象用.ad于听dX处者XX对理Li象事st)e件r(,监具体在哪 个组件上发生事件后由哪个监听者处理,必须 事前用“组件名.addXXXLister( )”进行注册。
事件处理程序:Java语言中包含了许多用来处理 事件的接口和类。用于事件处理的方法就声明在 这些类或接口中。这些包含有事件处理方法的接 口称为监听者接口,包含有事件处理方法的类称 为适配器类。监听者负责处理事件源发生的事件 ,为了处理事件源发生的事件,监听者会自动调 用一个方法来处理事件。这些处理事件的方法就 是事件处理程序。
第14章 事件处理
L/O/G/O
1
本章主要内容
委托事件模型
担任监听者的条件
Java语言的事件类 监听者接口与适配器类 事件及相应的事件处理
菜单栏设计
工具栏设计师
定时器
2
14.1 委托事件模型
事件处理:为组件设计相应的程序,使组件能够 响应并处理用户的操消息作处。理和事件驱 Java 程序一旦构建动技完术是G的面UI主向,要对就特象不编点再程。工作,而是等 待用户通过鼠标、键盘给它通知(消息驱动), 它再根据这个通知的内容进行相应的处理(事件 驱动)。
5
14.1 委托事件处理
Java语言规定:为了让监听者能对事件源发生的 事件进行处理,创建该监听者对象的类必须声明 实现相应的监听者接口或继承相应的适配类,即 必须在类体中具体定义该接口中所有方法的方法 体或覆盖适配器类中的相应方法,以供监听者自 动调用相应事件处理方法来完成对应事件的任务 ,这些处理事件的方法就是事件处理程序。
11
14.1 委托事件模型
定义内部类来担任监听者 通常将实现接口的类定义在主类里,使之成为 它的内部类(内部类可以访问外部类的所有成 员) 见教材例14.2。
12
13
14.1 委托事件模型
使用匿名内部类来担任监听者 使用匿名内部类充当监听者这种方式,使程序看 起来比较清楚明了。
见教材例14.3。
7
14.1 委托事件模型
总的来说,委托事件模型是由产生事件的对象( 事件源)、事件对象以及事件监听者对象之间的关系 所组成。而其中的“事件监听者”就是用来处理事件 的对象,也就是说,监听者对象会等待事件的发生, 并在事件发生时收到通知。事件源会在事件产生时, 将相关于该事件的信息封装在一个对象中,称之为“ 事件对象”,并将该对象传递给事件监听者,监听者 就可以根据该“事件对象”内的信息决定适当的处理 方式,即调用相应的事件处理程序。
通常一个键盘或鼠标操作会引发一个系统预先定 义好的事件,用户只需编写代码,定义每个特定 事件发生时程序应做出何种响应即可。
3
14.1 委托事件处理
事件(event):用户使用鼠标或键对窗口中的组 件进行交互时所发生的事情。对这些事件做出响 应的程序,称为事件处理程序(Event Handler)。
6
14.1 委托事件模型
委托事件模型:是将事件源(如命令按钮)和对事 件做出的具体处理(利用监听者实例来对事件进行 具体的处理)分离开来(。jav一a.般a事wt件情.对e况v象en下t),,表组件(事件 源)不处理自己的事件示,事而件是的内将容事,件内处部封理委托给外 部的处理实体(监听者装)了。一用当个等对事信事件息件。发源生的引时,产生事 件的对象即事件源,会把此“信息”转给事件监听 者处理的一种方式,而这里所指的“信息”事实上 就是java.awt.event事件类库里某个类所创建的对象, 我们把它称为“事件对象”(Event object)。事件 对象表示事件的内容,对象内部封装了一个对事件 源eveutSource的引用和其他信息。
事件源(event source):能够产生事件的对象。如 按钮、鼠标、文本框、键盘等。
事件监听者(listener):监听者有专门的方法来处
理事件,事件监听者是一个对事件源进行监视的
对象,当事件源上发生事件时,事件监听者能够
监听到,并调用相应的方法对发生的事件做出相
应的处理。
4
14.1 委托事件处理
17
14.2 Java语言的事件类
每当在事件源上发生一个操作时,就会产生相应 的事件对象。 事件源与其产生的事件对象的对应关系见教材表 14.2。
18
14.2 Java的事件处理类
Java语言中处理事件的具体方法:
确认触发的事件,取得事件类的名字,如ActionEvent ,去掉其中的“Event”字样。在剩下的部分加入 “Listener”,这就是在类里需要实现的事件监听者 接口。
8
14.1 委托事件模型
• 例如,当按钮被鼠标单击时,会触发一个“操作事 件”(Action event),Java程序就会产生一个“事 件对象”来表示这个事件,然后把这个“事件对象 ”传递给“事件监听者”,“事件监听者”再依据 “事件对象”的种类把工作指派给事件处理者,即 事件处理程序。在这里按钮就是一个事件源。
14
15
14.2 Java语言的事件类
java.awt.event 包和javax.swing.event包中定义了许 多事件类用于处理各种用户操作所产生的事件。 事件类的继承关系见教材图14.3。
16
14.2 Java语言的事件类
• 对于每一个事件类,几乎都有相应的事件监听者 。监听者接口多数都是继承自 java.util.EventListener接口。图14.4列出了事件监 听者接口之间的继承关系。 事件类、事件监听者接口和监听者接口中提供的 方法关系列表见教材中表14.1。