北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第7章 图形用户界面程序设计入门(7.2)事件驱动程序

第七章(2)事件驱动程序 目标: 解释事件驱动程序的概念 了解事件、事件源和事件类 声明监听器类并编写代码处理事件 在事件源对象中注册监听器对象 理解事件处理的方式 编写程序处理行为事件 Action event 编写程序处理鼠标事件 Mouse event 编写程序处理键盘事件 KeyEvent 使用Time类控制动画
第七章(2)事件驱动程序 目标: 解释事件驱动程序的概念 了解事件、事件源和事件类 声明监听器类并编写代码处理事件 在事件源对象中注册监听器对象 理解事件处理的方式 编写程序处理行为事件ActionEvent 编写程序处理鼠标事件MouseEvent 编写程序处理键盘事件KeyEvent 使用Time类控制动画

引言 所有非GUI程序都是按过程的顺序执行 Java gu程序设计是事件驱动的,在事 件驱动程序设计中,激活一个事件时开 始执行相应的代码,事件也许是点击按 钮,也许是移动鼠标
引言 所有非GUI程序都是按过程的顺序执行 Java GUI程序设计是事件驱动的,在事 件驱动程序设计中,激活一个事件时开 始执行相应的代码,事件也许是点击按 钮,也许是移动鼠标

Eⅴents 事件可以定义为程序发生了某些事件的信号。 比如,外部用户行为,移动鼠标、点击鼠标和 按下键盘等,都可以引发事件。操作系统,如 时钟等,也可以引发事件 薯件源对象:在基上发生事件的组件。如按钮 是点击按钮事件的源对象。 一个事件是事件类的对 事件类的根类是 ava.util. Eventobject事件类的层次关系如下 图所示:
Events 事件可以定义为程序发生了某些事件的信号。 比如,外部用户行为,移动鼠标、点击鼠标和 按下键盘等,都可以引发事件。操作系统,如 时钟等,也可以引发事件。 事件源对象:在其上发生事件的组件。如按钮 是点击按钮事件的源对象。 一个事件是事件类的对象,事件类的根类是 java.util.EventObject。事件类的层次关系如下 图所示:

Event classes Actionevent Container event Adjustment Event Focus Event Mouse event EventObject AWTEvent ComponentEvent InputEvent ItemEvent Paint Event Event Text Event Window Event Listselection Ev 注:除 Listselection Event外,上面所有事件类都包含在包 ava.awt event中。AWT事件最初是为AWT组件设计的,但许 多Swng组件都可以触发它们
Event Classes EventObject AWTEvent AdjustmentEvent ComponentEvent TextEvent ItemEvent ActionEvent InputEvent WindowEvent MouseEvent KeyEvent ContainerEvent FocusEvent PaintEvent ListSelectionEvent 注:除ListSelectionEvent外,上面所有事件类都包含在包 java.awt.event中。AWT事件最初是为AWT组件设计的,但许 多Swing组件都可以触发它们

Eⅴ ent Information 事件对象包含与事件相关的一切属性,可以使 用 Eventobject类中的实例方法 getSourceo获得 事件的源对象。 Eventobject类的子类处理特定类型的事件,如 行为事件、窗口事件等,下表列出了部分事件
Event Information 事件对象包含与事件相关的一切属性,可以使 用EventObject类中的实例方法getSource()获得 事件的源对象。 EventObject类的子类处理特定类型的事件,如 行为事件、窗口事件等,下表列出了部分事件

用户行为、源对象和事件类型 用户行为 源对象 事件类型 点击按钮 JBut七on Ac七 nonEvent 点击复选框 CHeckbOx I temEvent ActionEvent 点击单选按钮 RAdiobUtton ItemEvent ActionEvent 在文本框按下回车键 TExtfIeld Ac七i。 nEver七 选定一个新项 JCombobox ItemEvent ActionEvent 窗口打开、关闭、最小化等 W主ndow WindowEvent 按下、释放、点击鼠标等 Component Mouseevent 释放或按下键盘上的键 Component Keyevent 注:如一个组件能够发生某个事件,则这个组件的任何子类 都能发生同样类型的事件
用户行为、源对象和事件类型 用户行为 源对象 事件类型 点击按钮 JButton ActionEvent 点击复选框 JCheckBox ItemEvent, ActionEvent 点击单选按钮 JRadioButton ItemEvent, ActionEvent 在文本框按下回车键 JTextField ActionEvent 选定一个新项 JComboBox ItemEvent, ActionEvent 窗口打开、关闭、最小化等 Window WindowEvent 按下、释放、点击鼠标等 Component MouseEvent 释放或按下键盘上的键 Component KeyEvent 注:如一个组件能够发生某个事件,则这个组件的任何子类 都能发生同样类型的事件

事件的监听、注册和处理 Java使用事件委托处理模型来处理事件:在源对 象上的外部用户行为触发事件,监听该事件的对 象自动调用相应的事件处理方法进行处理 如何成为源对象上事件的监听器? 监听器对象的类必须实现相应的事件监听器接口 Java为每一种类型的GUI事件都提供了监听器接口。 通常事件ⅹ Event的监听接口命名为 LIStener。监听接 口包含处理事件的方法。 源对象必须注册监听器对象。一般来说, XEvent的注 册方法名为 addXListener。一个源对象可以注册多个监 听器,以对多种事件起作用
事件的监听、注册和处理 Java使用事件委托处理模型来处理事件:在源对 象上的外部用户行为触发事件,监听该事件的对 象自动调用相应的事件处理方法进行处理。 如何成为源对象上事件的监听器? – 监听器对象的类必须实现相应的事件监听器接口。 Java为每一种类型的GUI事件都提供了监听器接口。 通常事件XEvent的监听接口命名为XListener。监听接 口包含处理事件的方法。 – 源对象必须注册监听器对象。一般来说,XEvent的注 册方法名为addXListener。一个源对象可以注册多个监 听器,以对多种事件起作用

事件、事件监听接口和监听接口方法 Event Class istener Interface Listener Methods(handlers) Ac七i。 eVent Ac七i。 lIstens actionPerformed(ActionEvent) 工七 emEvent 工 temlistener itemState Changed(ItemEvent WindowEvent W主 ndowlistener windowClosing(WindowEvent) ndowOpened(WindowEvent) windowIconified(WindowEvent windowDeiconified (WindowEvent) dowclosed(WindowEvent) windowActivated (windowevent) ndowDeactivated (windowE vent) ContainerEvent ContainerListener componentAdded(ContainerEvent) componentRemoved (ContainerEvent) MouseEvent Mouselistener mousepressed (mouseevent) mouseReleased (Mouseevent) clicked (MouseEvent) mouseExited (Mouseevent) mouseEntered (MouseEvent) keyevent KeyListener keyPressed (keyEvent keyreleased (keyevent) keyTypeed (keyevent)
事件、事件监听接口和监听接口方法 Event Class Listener Interface Listener Methods (Handlers) ActionEvent ActionListener actionPerformed(ActionEvent) ItemEvent ItemListener itemStateChanged(ItemEvent) WindowEvent WindowListener windowClosing(WindowEvent) windowOpened(WindowEvent) windowIconified(WindowEvent) windowDeiconified(WindowEvent) windowClosed(WindowEvent) windowActivated(WindowEvent) windowDeactivated(WindowEvent) ContainerEvent ContainerListener componentAdded(ContainerEvent) componentRemoved(ContainerEvent) MouseEvent MouseListener mousePressed(MouseEvent) mouseReleased(MouseEvent) mouseClicked(MouseEvent) mouseExited(MouseEvent) mouseEntered(MouseEvent) KeyEvent KeyListener keyPressed(KeyEvent) keyReleased(KeyEvent) keyTypeed(KeyEvent)

委托代理模型 Register by invoking Trigger an event source. addXlistener(listener); User source: sourceclas listener: Listener Class Action +addXListener(LIstener listener) Keep it a list LIstener event: XEvent listener 1 Invoke listener 2 listener l handler(event) handler(XEvent event listener2. handler(event) histenern stenen handler(event) Internal function of the source object
委托代理模型 source: SourceClass +addXListener(XListener listener) User listener: ListenerClass Action Trigger an event XListener +handler(XEvent event) Internal function of the source object event: XEvent listener1 listener2 … listenern +handler( XEvent Register by invoking source.addXListener(listener); Keep it a list Invoke listener1.handler(event) listener2.handler(event) … listenern.handler(event)

委托代理模型举例 source: jButton ActionListener +addActionListener( Action Listener listener taction Performed(Action Event event) Register by invoking sourceaddActionListener(listener),listener: ListenerClass ListenerClass listener new Listenerclass o JButton jbt new JButton("Ok")i jbt addActionlistener (listener)i
委托代理模型举例 source: JButton +addActionListener(ActionListener listener) listener: ListenerClass ActionListener +actionPerformed(ActionEvent event) Register by invoking source.addActionListener(listener); ListenerClass listener = new ListenerClass(); JButton jbt = new JButton("OK"); jbt.addActionListener(listener);
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第7章 图形用户界面程序设计入门(7.1)图形用户界面.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第1章 Java概述.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第2章 Java基本编程结构.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第3章 字符串和数组.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第4章 对象和类.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第5章 继承与多态.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第6章 异常处理.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第七章 图形编程.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第八章 Java Swing与事件处理.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第9章 Applet基础.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第10章 多线程.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第11章 输入输出流及文件.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第12章 Java的网络编程.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第2章 标识符、关键字和数据类型.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第3章 运算符、表达式和语句.ppt
- 清华大学:《操作系统》课程教学资源(PPT课件)第七章 文件系统(向勇).ppt
- 清华大学:《操作系统》课程教学资源(PPT课件)第六章 存储管理(向勇).ppt
- 清华大学:《操作系统》课程教学资源(PPT课件)第五章 处理机管理(向勇).ppt
- 清华大学:《操作系统》课程教学资源(PPT课件)第一章 绪论(向勇).ppt
- 清华大学:《操作系统》课程教学资源(PPT课件)第二章 作业管理和用户接口(向勇).ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第7章 图形用户界面程序设计入门(7.3)创建图形用户界面.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第7章 图形用户界面程序设计入门(7.4)菜单、工具栏、对话框.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第1章 Java 语言入门.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第6章 异常处理.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第4章 对象和类.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第10章 JDBC链接数据库.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第11章 Java异常处理.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第12章 Java I/O处理.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)Java技术概览.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第1章 J ava开发工具及环境.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第2章 Java语言基础.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第3章 程序流程控制.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第4章 数组.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第5章 字符串操作.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第6章 容器类简介.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第7章 面向对象技术导论.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第8章 对象的初始化和清理.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第9章 多线程编程.ppt
- 清华大学:《数据结构》课程教学资源(练习答案)第一章答案.doc
- 清华大学:《数据结构》课程教学资源(练习答案)第十章答案.doc