




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
低级事件与语义事件AWT 提供了二种概念性事件类型:低级事件和语义事件。低级事件代表屏幕上可视化组件的低级输入或窗口系统事件。AWT 定义的低级事件类如下:java.util.EventObjectjava.awt.AWTEvent java.awt.event.ComponentEvent(组件改变大小,移动等)java.awt.event.FocusEvent(组件获得焦点,失去焦点)java.awt.event.InputEvent java.awt.event.KeyEvent(组件获得键按下、键释放等) java.awt.event.MouseEvent(组件获得鼠标按下、鼠标移动等)java.awt.event.ContainerEventjava.awt.event.WindowEvent语义事件是在较高层次定义的,用于封装用户接口组件模型的语义。AWT 定义的语义事件类如下:java.util.EventObject java.awt.AWTEventjava.awt.event.ActionEvent(“执行命令”)java.awt.event.AdjustmentEvent(“值被调整”)java.awt.event.ItemEvent (“项目状态改变”)java.awt.event.TextEvent(“文本对象的值改变”)注意这些语义事件不依赖特定的基于屏幕的组件类,但可以应用到实现类似语义模型的一套组件上。例如,Button 对象将在被按下时抛出“action”事件,List 对象将在双击其中项目时抛出“action”事件,当从菜单中选择 MenuItem 时抛出“action”事件,而非可视化 Timer 对象在计时器到时时抛出“action”事件(后者为假设情况)。事件监听器EventListener 接口通常对于事件类代表的不同事件类型具有不同的方法。因此本质上,特定事件语义由 Event 类和 EventListener 中的特定方法合起来定义。例如,FocusListener 接口定义了两种方法,focusGained() 和 focusLost(),分别用于 FocusEvent 类代表的两种事件类型。该 API 试图提供一个合理的监听器接口类型数量而又不是为每种事件类型都提供单独的接口。AWT 定义的低级监听器接口如下:java.util.EventListener java.awt.event.ComponentListener java.awt.event.ContainerListener java.awt.event.FocusListener java.awt.event.KeyListener java.awt.event.MouseListener java.awt.event.MouseMotionListener java.awt.event.WindowListenerAWT 定义的语义监听器接口如下:java.util.EventListener java.awt.event.ActionListener java.awt.event.AdjustmentListener java.awt.event.ItemListener java.awt.event.TextListener 事件源因为事件源抛出的事件由对象的特定方法定义,所以在 API 文档中(以及通过使用运行时自查技术)对象精确支持哪些事件是完全清楚的。所有 AWT 事件源支持监听器的 multicast 模型。这意味着可在单个源中添加或清除多个监听器。但 API 不能保证事件按次序发送到给定源上给定事件的一组已注册监听器。此外,任何允许修改其属性(通过 setXXX() 方法)的事件将显式地被复制,以使每个监听器接收到原事件的一份副本。如果程序需要考虑事件发送到监听器的次序,则应该将监听器链接到已在源上注册的单个监听器上(将事件数据封装在单个对象中使得事件传播相当简单)。事件发送是同步的(如 1.0 版中的 handleEvent()),但是程序不应该假定在同一线程中将事件发送到一组监听器。再次强调,低级事件和语义事件是有区别的。对于低级事件,源是一个可视化组件类(Button、Scrollbar 等),因为事件紧密地绑定到屏幕上的实际组件。低级监听器在下列组件上定义: java.awt.Component addComponentListener(ComponentListener l)addFocusListener(FocusListener l)addKeyListener(KeyListener l)addMouseListener(MouseListener l)addMouseMotionListener(MouseMotionListener l) java.awt.Container addContainerListener(ContainerListener l) java.awt.Dialog addWindowListener(WindowListener l) java.awt.Frame addWindowListener(WindowListener l)对于语义事件,源通常是代表语义模型的高级接口(并且这个高级接口通常由使用该模型的组件实现)。下面是为 AWT 组件定义的语义监听器: java.awt.Button addActionListener(ActionListener l) java.awt.Choice(实现 java.awt.ItemSelectable) addItemListener(ItemListener l) java.awt.Checkbox(实现 java.awt.ItemSelectable) addItemListener(ItemListener l) java.awt.CheckboxMenuItem(实现 java.awt.ItemSelectable) addItemListener(ItemListener l) java.awt.List(实现 java.awt.ItemSelectable) addActionListener(ActionListener l)addItemListener(ItemListener l) java.awt.MenuItem addActionListener(ActionListener l) java.awt.Scrollbar(实现 java.awt.Adjustable) addAdjustmentListener(AdjustmentListener l) java.awt.TextArea addTextListener(TextListener l) java.awt.TextField addActionListener(ActionListener l)addTextListener(TextListener l)适配器由于许多 EventListener 接口设计成监听多种事件子类型(例如 MouseListener 监听鼠标按下、鼠标释放、鼠标进入等),所以 AWT 将提供一套抽象“适配器”类,分别实现每个监听器接口。这将允许程序很容易地扩展适配器并仅覆盖代表它们想要事件类型的方法。AWT 提供的适配器类如下:java.awt.event.ComponentAdapterjava.awt.event.ContainerAdapterjava.awt.event.FocusAdapterjava.awt.event.KeyAdapterjava.awt.event.MouseAdapterjava.awt.event.MouseMotionAdapterjava.awt.event.WindowAdapterJava将所有组件可能发生的事件进行分类,具有共同特征的事件被抽象为一个事件类AWTEvent,其中包括ActionEvent类(动作事件)、MouseEvent类(鼠标事件)、KeyEvent类(键盘事件)等。表10.17列出了常用Java事件类、处理该事件的接口及接口中的方法。常用Java事件类、处理该事件的接口及接口中的方法事件类/接口名称接口方法及说明ActionEvent动作事件类ActionListener接口actionPerformed(ActionEvent e)单击按钮、选择菜单项或在文本框中按回车时或者双击列表项时AdjustmentEvent调整事件类AdjustmentListener接口adjustmentValueChanged(AdjustmentEvent e)当改变滚动条滑块位置时ComponentEvent组件事件类ComponentListener接口componentMoved(ComponentEvent e)组件移动时componentHidden(ComponentEvent e)组件隐藏时componentResized(ComponentEvent e)组件缩放时componentShown(ComponentEvent e)组件显示时ContainerEvent容器事件类ContainerListener接口componentAdded(ContainerEvent e)添加组件时componentRemoved(ContainerEvent e) 移除组件时(所有容器 如面板)FocusEvent焦点事件类FocusListener接口focusGained(FocusEvent e)组件获得焦点时focusLost(FocusEvent e)组件失去焦点时(所有组件)ItemEvent选择事件类ItemListener接口itemStateChanged(ItemEvent e)选择复选框、单选项框、单击列表框、选中带复选框菜单时KeyEvent键盘事件类KeyListener接口keyPressed(KeyEvent e)键按下时keyReleased(KeyEvent e) 键释放时keyTyped(KeyEvent e)击键时(所有组件)MouseEvent鼠标事件类MouseListener接口mouseClicked(MouseEvent e) 单击鼠标时mouseEntered(MouseEvent e)鼠标进入时mouseExited(MouseEvent e)鼠标离开时mousePressed(MouseEvent e)鼠标键按下时mouseReleased(MouseEvent e) 鼠标键释放时(所有组件)MouseEvent鼠标移动事件类MouseMotionListener接口mouseDragged(MouseEvent e)鼠标拖放时mouseMoved(MouseEvent e)鼠标移动时(所有组件)TextEvent文本事件类TextListener接口textValueChanged(TextEvent e)文本框、多行文本框内容修改时WindowEvent窗口事件类WindowListener接口windowOpened(WindowEvent e)窗口打开后windowClosed(WindowEvent e)窗口关闭后windowClosing(WindowEvent e)窗口关闭时windowActivated(WindowEvent e)窗口激活时windowDeactivated(Windo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程保理业务方案(3篇)
- 高级方案工程师(3篇)
- 顶拉管工程方案(3篇)
- 农业废弃物资源化利用在2025年生态农业发展中的重要性报告
- 农业企业数字化种植案例研究:农业物联网设备互联互通分析报告
- 劳务公司务会计面试题及答案
- 电商平台大数据分析在2025年实现个性化营销策略报告
- 修理服务合同
- 聚焦2025年:精神心理健康医疗服务供需现状与市场拓展报告
- 网络购物服务合同
- (2025秋新版)人教版九年级物理上册全册教案
- 2025年国防教育知识竞赛试题(附答案)
- 非车主押车借款合同范本
- 2025广东中山大学附属第一医院惠亚医院事业编制人员招聘37人(第二批次)笔试备考试题及答案解析
- GJB2220A-2018 航空发动机用钛合金饼、环坯规范
- 精神卫生防治业务技能竞赛理论试题库300题(含答案)
- 2025年生物制药靶点发现与验证技术临床试验监管政策报告
- 睿卡古筝课件
- 【课件】长度和时间的测量教学课件2025-2026学年初中物理人教版(2024)八年级上册
- 煤矿面试题目及答案
- 养殖场安全知识培训课件
评论
0/150
提交评论