分享

java程序员修炼之路基础篇十四:事件处理

 新用户26922hFh 2022-01-12

  在上一篇文章中我跟大家聊了一下如何创建图形界面,今天我们聊一下如何为图形界面添加事件处理。简单的说,事件处理就是为图形界面添加针对用户操作的"响应",比如用户点击了某个按钮,那么这个时候系统就会产生一个"事件",而事件处理就是要处理用户产生的这个"事件"。

  在Java语言的事件处理模式中有三个概念需要了解:1.事件(Event)。用户针对图形界面的每次操作都会产生对应的事件,java系统中为各种事件定义了针对性的类来表示,比如鼠标事件MouseEvent、键盘事件KeyEvent等。当用户完成一次操作后,系统将为其产生一个对应的事件类对象。2.事件源(Event Source)。Event Source就是产生此事件的源头,或者说发起者。比如,当用户点击按钮时产生了事件对象,那么这个按钮就是这个事件的事件源。3.事件监听器(Event Monitor)。Event Monitor有两个组成部分,分别是事件监听接口和接口的实现类。事件监听接口由系统定义好,针对不同的事件定义了不同的接口,而接口的实现类需要开发人员自己来定义并完成事件处理过程。

  Java的事件处理采用了委托处理的模式,委托处理模式让事件源和事件处理器进行了分离。通常一个事件源可以委托不同的监听器来完成不同事件的处理,结构更加清晰。看一个实例:

  java程序员修炼之路基础篇十四:事件处理

  java程序员修炼之路基础篇十四:事件处理

  例子演示了一个完整的事件处理过程。当用户点击按钮"点击我"时,产生了ActionEvent事件对象,此时由于程序为事件源button对象添加了事件处理器MyHandler,则系统转而执行事件处理器中对应的方法actionPerformed。这个过程清晰呈现了java中采用的事件委托处理模式。

  在前面的文章中,我跟大家聊了内部类的概念,当时有小伙伴留言说不知道内部类用在什么地方,下面我们就看一下内部类在事件处理过程中的使用,看下面的实例:

  java程序员修炼之路基础篇十四:事件处理

  内部类在事件处理中使用的比较多,也是常见的解决方案。

  除了ActionEvent,比较常见的事件还有MouseEvent和KeyEvent,它俩分别代表了鼠标事件和键盘事件。MouseEvent对应的事件监听接口有两个:MouseListener和MouseMotionListener,KeyEvent对应的事件监听接口是KeyListener。看下面的实例:

  java程序员修炼之路基础篇十四:事件处理

  java程序员修炼之路基础篇十四:事件处理

  为了开发人员在编写代码的时候更加方便,系统为MouseListener等事件监听接口提供了一系列适配器类。这些适配器类完成了对应事件监听接口的实现,开发人员在使用的时候只需要覆盖掉对应的方法就可以了,简化了代码。看下面的实例:

  java程序员修炼之路基础篇十四:事件处理

  java程序员修炼之路基础篇十四:事件处理

  除了MouseListener,系统为KeyListener以及WindowListener都提供了适配器类,在编写对应的事件处理类时可以使用。下一篇文章我将跟大家聊一聊Swing的使用,请大家持续关注。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多