Java语言程序设计-15-事件驱动程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java语言程序设计

海南大学信息科学技术学院

台安

2

第十五章事件驱动程序设计

Ø

学习目标

n 介绍事件、事件源和事件类

n 定义处理器类、注册处理器、实现处理器方法来处理事件n 使用内部类定义处理器n 使用匿名类定义处理器

n 使用lambda 表达式定义处理器n

掌握编写程序来处理常见的事件

l 处理窗口事件l 处理鼠标事件l

处理键盘事件

3

目录

Ø15.1 事件概述Ø15.2 事件模型组件Ø15.3 事件处理器

Ø15.4 事件处理一般步骤Ø15.5 内部类Ø15.6 匿名类

Ø15.7 lambda 表达式Ø

15.8 常见事件处理

4

15.1 事件概述

Ø

事件的定义

n

日常生活中,事件是指事件的主体在一些外部因素的驱动下,其状态或行为发生了变化,需要对其作出处理。

l

比如:电话铃响、门被叩响、汽车启动等都是事件

n

计算机世界中,事件是用户通过输入设备(如:鼠标、键盘等)在程序界面上进行的操作(如点击按钮、移动鼠标、按下一个键等),或者是一个系统事件,如时钟到达。

5

Ø

事件驱动程序设计

n

用户对GUI (Graphical User Interface )控件进行操作产生事件,GUI 程序监听事件,并驱动相应的类的实例来处理事件,这个过程称为事件驱动过

程。

界面

GUI 程序

处理器处理器处理器①触发事件

②处理事件

③响应事件

④反馈事件

用户

6

Ø

事件处理机制

n

事件:Java 语言将每一个键盘或鼠标的操作定义为一个“事件”。

n

事件响应:当事件发生时程序应该作出何种响应。

当用户点击了一个按钮,意味着一个按钮事件的发生。

事件处理方法对该事件进行响应

7

15.2 事件模型组件

Ø

事件的构成(三要素):

n

谁产生事件

n

产生什么事件,事件的内容是什么

l

比如:谁发出的、在什么位置发生的、什么时间发生的等

n

谁来处理该事件

8

Ø

事件的构成

n

以“用户点击按钮”事件来说明事件三要素:

GUI 界面

事件源button

②创建

Java 运行时系统

事件对象

事件处理对象(处理器)

③传递

④回馈

①点击

9

事件三要素

事件(Event)三要素:

Ø事件源(Sorce Object ):产生事件的组件叫事件源

Ø事件对象(Event Object ):包含与事件相关的属性的对象n 包含的信息有:事件源对象、位置、时间等

Ø

事件处理器(handler ):对事件进行处理的对象,包含处理该事件的方法

事件源对象

JVM 产生事件(类)对象

JVM 传递事件对象给相关的处理器

用户产生事件

10

Java 事件类

Ø

Java 有20多个预定义的事件类,它们包含了所有组件上可能

发生的事件。

JavaFX 的事件类的根类是javafx.event.Event

11

事件接口与事件处理方法

Ø每一个事件都有一个相应的事件接口,事件接口中的事件处理方法完成对事件的处理

class OKHandlerClass implements EventHandler {@Override

public void handle (ActionEvent e) {

System.out.println("OK button clicked");

}

}

OKHandlerClass handler1 = new OKHandlerClass();按钮的事件

事件处理方法事件接口

12

15.3 事件处理器

Ø

一个对象若要成为事件处理器,必须满足条件:n 事件处理器必须是一个对应事件处理接口的实例n 事件处理器必须向事件源注册

class OKHandlerClass implements EventHandler {@Override

public void handle (ActionEvent e) {

System.out.println("OK button clicked");

}

}

OKHandlerClass handler1 = new OKHandlerClass();

btOK.setOnAction(handler1);按钮的事件是对应事件处理

接口的一个实例

②①②向事件源注册

13

Ø外部用户动作导致一个事件源触发一个事件,事件注册方法用于注册该事件类型

的处理器。

14

Ø外部用户动作导致一个事件源触发一个事件,事件注册方法用于注册该事件类型的处理器。

•不同的事件源类型,产生的事件类型以及事件注册方法也可能会不一样

相关文档
最新文档