欢迎来到天天文库
浏览记录
ID:37710686
大小:23.49 KB
页数:5页
时间:2019-05-29
《Java事件类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、低级事件与语义事件AWT提供了二种概念性事件类型:低级事件和语义事件。低级事件代表屏幕上可视化组件的低级输入或窗口系统事件。AWT定义的低级事件类如下:java.util.EventObjectjava.awt.AWTEventjava.awt.event.ComponentEvent(组件改变大小,移动等)java.awt.event.FocusEvent(组件获得焦点,失去焦点)java.awt.event.InputEventjava.awt.event.KeyEvent(组件获得键按下、键释放等)java.awt.event.Mous
2、eEvent(组件获得鼠标按下、鼠标移动等)java.awt.event.ContainerEventjava.awt.event.WindowEvent语义事件是在较高层次定义的,用于封装用户接口组件模型的语义。AWT定义的语义事件类如下:java.util.EventObjectjava.awt.AWTEventjava.awt.event.ActionEvent(“执行命令”)java.awt.event.AdjustmentEvent(“值被调整”)java.awt.event.ItemEvent(“项目状态改变”)java.awt.
3、event.TextEvent(“文本对象的值改变”)注意这些语义事件不依赖特定的基于屏幕的组件类,但可以应用到实现类似语义模型的一套组件上。例如,Button对象将在被按下时抛出“action”事件,List对象将在双击其中项目时抛出“action”事件,当从菜单中选择MenuItem时抛出“action”事件,而非可视化Timer对象在计时器到时时抛出“action”事件(后者为假设情况)。事件监听器EventListener接口通常对于事件类代表的不同事件类型具有不同的方法。因此本质上,特定事件语义由Event类和EventListen
4、er中的特定方法合起来定义。例如,FocusListener接口定义了两种方法,focusGained()和focusLost(),分别用于FocusEvent类代表的两种事件类型。该API试图提供一个合理的监听器接口类型数量而又不是为每种事件类型都提供单独的接口。AWT定义的低级监听器接口如下:java.util.EventListenerjava.awt.event.ComponentListenerjava.awt.event.ContainerListenerjava.awt.event.FocusListenerjava.awt.e
5、vent.KeyListenerjava.awt.event.MouseListenerjava.awt.event.MouseMotionListenerjava.awt.event.WindowListenerAWT定义的语义监听器接口如下:java.util.EventListenerjava.awt.event.ActionListenerjava.awt.event.AdjustmentListenerjava.awt.event.ItemListenerjava.awt.event.TextListener事件源因为事件源抛出的事
6、件由对象的特定方法定义,所以在API文档中(以及通过使用运行时自查技术)对象精确支持哪些事件是完全清楚的。所有AWT事件源支持监听器的multicast模型。这意味着可在单个源中添加或清除多个监听器。但API不能保证事件按次序发送到给定源上给定事件的一组已注册监听器。此外,任何允许修改其属性(通过setXXX()方法)的事件将显式地被复制,以使每个监听器接收到原事件的一份副本。如果程序需要考虑事件发送到监听器的次序,则应该将监听器链接到已在源上注册的单个监听器上(将事件数据封装在单个对象中使得事件传播相当简单)。事件发送是同步的(如1.0版中
7、的handleEvent()),但是程序不应该假定在同一线程中将事件发送到一组监听器。再次强调,低级事件和语义事件是有区别的。对于低级事件,源是一个可视化组件类(Button、Scrollbar等),因为事件紧密地绑定到屏幕上的实际组件。低级监听器在下列组件上定义:·java.awt.ComponentaddComponentListener(ComponentListenerl)addFocusListener(FocusListenerl)addKeyListener(KeyListenerl)addMouseListener(Mouse
8、Listenerl)addMouseMotionListener(MouseMotionListenerl)·java.awt.ContaineraddContai
此文档下载收益归作者所有