Java学习day070 事件处理(事件处理基础:一)(实例:处理按钮点击事件、简洁地指定监听器)

本文介绍了Java图形用户界面的事件处理基础,通过实例展示了如何处理按钮点击事件,并使用监听器进行响应。讲解了Java事件委托模型,包括监听器对象、事件源和事件对象的交互,并提供了一个简单的示例,展示如何创建和添加监听器对象,以及使用lambda表达式简洁地指定监听器。
摘要由CSDN通过智能技术生成

使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识。

day070   事件处理(事件处理基础:一)(实例:处理按钮点击事件、简洁地指定监听器)

对于图形用户界面的程序来说,事件处理是十分重要的。要想实现用户界面,必须掌握Java事件处理的基本方法。


事件处理基础

任何支持GUI的操作环境都要不断地监视按键或点击鼠标这样的事件。操作环境将这些事件报告给正在运行的应用程序。如果有事件产生,每个应用程序将决定如何对它们做出响应。在Visual Basic这样的语言中,事件与代码之间有着明确的对应关系。程序员对相关的特定事件编写代码,并将这些代码放置在过程中,通常人们将它们称为事件过程(event procedure)。例如,有一个名为HelpButton的Visual Basic按钮有一个与之关联的HelpButton_Click事件过程。这个过程中的代码将在点击按钮后执行。每个VisualBasic的GUI组件都响应一个固定的事件集,不可能改变VisualBasic组件响应的事件集。

另一方面,如果使用像原始的C这样的语言进行事件驱动的程序设计,那就需要编写代码来不断地检查事件队列,以便査询操作环境报告的内容(通常这些代码被放置在包含很多switch语句的循环体中)。显然,这种方式编写的程序可读性很差,而且在有些情况下,编码的难度也非常大。它的好处在于响应的事件不受限制,而不像VisualBasic这样的语言,将事件队列对程序员隐藏起来。

Java程序设计环境折中了Visual Basic与原始C的事件处理方式,因此,它既有着强大的功能,又具有一定的复杂性。在AWT所知的事件范围内,完全可以控制事件从事件源(event source)例如,按钮或滚动条,到事件监听器(event listener)的传递过程,并将任何对象指派给事件监听器。不过事实上,应该选择一个能够便于响应事件的对象。这种事件委托模型(event delegation model)与Visual Basic那种预定义监听器模型比较起来更加灵活。

事件源有一些向其注册事件监听器的方法。当某个事件源产生事件时,事件源会向为事件注册的所有事件监听器对象发送一个通告。

像Java这样的面向对象语言,都将事件的相关信息封装在一个事件对象(event object)中。在Java中,所有的事件对象都最终派生于java.util.EventObject类。当然,每个事件类型还有子类,例如,ActionEvent和WindowEvent。

不同的事件源可以产生不同类别的事件。例如,按钮可以发送一个ActionEvent对象,而窗口可以发送WindowEvent对象。

综上所述,下面给出AWT事件处理机制的概要:

•监听器对象是一个实现了特定监听器接口(listener

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值