Java学习day074 事件处理(AWT事件继承层次:语义事件和底层事件)

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

day074   事件处理(AWT事件继承层次:语义事件和底层事件)


 AWT事件继承层次

前面已经提到,Java事件处理采用的是面向对象方法,所有的事件都是由java.util包中的EventObject类扩展而来的(公共超类不是Event,它是旧事件模型中的事件类名。尽管现在不赞成使用旧的事件模型,但这些类仍然保留在Java库中)。

EventObject类有一个子类AWTEvent,它是所有AWT事件类的父类。下图显示了AWT事件的继承关系图。

有些Swing组件将生成其他事件类型的事件对象;它们都直接扩展于EventObject,而不是AWTEvent。

事件对象封装了事件源与监听器彼此通信的事件信息。在必要的时候,可以对传递给监听器对象的事件对象进行分析。在按钮例子中,是借助getSource和getActionCommand方法实现对象分析的。

              

对于有些AWT事件类来说,Java程序员并不会实际地使用它们。例如,AWT将会把PaintEvent对象插入事件队列中,但这些对象并没有传递给监听器。Java程序员并不监听绘图事件,如果希望控制重新绘图操作,就需要覆盖paintComponent方法。另外,AWT还可以生成许多只对系统程序员有用的事件,用于提供表义语言的输人系统以及自动检测机器人等。在此,将不讨论这些特殊的事件类型。


1.语义事件和底层事件

AWT将事件分为底层(low-level)事件和语义(semantic)事件。语义事件是表示用户动作的事件,例如,点击按钮;因此,ActionEvent是一种语义事件。底层事件是形成那些事件的事件。在点击按钮时,包含了按下鼠标、连续移动鼠标、抬起鼠标(只有鼠标在按钮区中抬起才引发)事件。或者在用户利用TAB键选择按钮,并利用空格键激活它时,发生的敲击键盘事件。同样,调节滚动条是一种语义事件,但拖动鼠标是底层事件。

下面是java.awt.event包中最常用的语义事件类:

•ActionEvent(对应按钮点击、菜单选择、选择列表项或在文本框中ENTER);

•AdjustmentEvent(用户调节滚动条);

•ItemEvem(用户从复选框或列表框中选择一项)。

常用的5个底层事件类是:

•KeyEvent(一个键被按下或释放);

•MouseEvent(鼠标键被按下、释放、移动或拖动);

•MouseWheelEvent(鼠标滚轮被转动);

•FocusEvent(某个组件获得焦点或失去焦点);

•WindowEvent(窗口状态被改变)。

下列接口将监听这些事件。

ActionListener
AdjustmentListener
FocusListener
ItemListener
KeyListener
MouseListener
MouseMotionListener
MouseWheelListener
WindowListener
WindowFocusListener
WindowStateListener

有几个AWT监听器接口包含多个方法,它们都配有一个适配器类,在这个类中实现了相应接口中的所有方法,但每个方法没有做任何事情(有些接口只包含一个方法,因此,就没有必要为它们定义适配器类了)。下面是常用的适配器类:

FocusAdapter 
MouseMotionAdapter 
KeyAdapter 
WindowAdapter 
MouseAdapter

下表显示了最重要的 AWT 监听器接口、事件和事件源。


javax.swing.event包中包含了许多专门用于Swing组件的附加事件,后面也要学习其中的一部分。AWT事件处理的讨论到此结束。后面学习Swing提供的更多的常用组件以及它们所产生的事件。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值