Java的事件处理机制.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 Java的GUI设计 Java AWT事件处理机制 如果用户在用户界面层执行了一个动作(鼠标点击和按键),这将导致一个事件的发生。事件是描述发生了什么的对象。存在各种不同类型的事件类用来描述各种类型的用户交互。事件源是一个事件的产生者。例如,在Button组件上点击鼠标会产生以这个Button 为源的一个ActionEvent。这个ActionEvent实例是一个对象,它包含关于刚才所发生的那个事件的信息的对象。事件处理器就是一个接收事件、解释事件并处理用户交互的方法。 Java语言采用委托事件模型进行事件的处理。在这个模型中,已经定义好了事件源可能产生的事件类型和与该事件类型相对应的接口,它们位于java.awt.event包和javax.swing.event包中。事件监听者是实现与该事件相对应的接口的类的对象。例如,对JButton组件进行单击,就产生ActionEvent事件,与ActionEvent事件对应的接口为ActionListener。如果用户定义的一个名叫ButtonHandler的类实现了ActionListener接口的方法(以事件对象为参数),则ButtonHandler类的一个实例,就可以作为单击事件的监听者。 事件源需要被注册到监听者才能被监测到相对应事件的发生,事件才能被处理。 事件是只向注册的监听者报告的对象(作为方法的参数)。 每个事件都有一个对应的监听者接口,规定哪些方法必须在适合接收那种类型的事件的类中定义。实现了定义那些方法的接口的类可以为一个监听者。 事件与事件源 用户在操作应用程序界面中的组件时,就会产生事件(Event),例如单击一个按钮,就会产生一个动作事件(ActionEvent);对窗口进行缩放或关闭等操作,就会产生一个窗口事件(WindowEvent);操作了键盘就会产生对应的键盘事件(KeyEvent)。 事件源指事件的来源对象,例如单击一个按钮时,这个按钮就是事件源。 在Java语言中“一切皆对象”,事件也不例外。当事件源产生事件后,与该事件有关的信息,如事件源、事件类型等就会被系统封装在一个事件对象中,在处理这个事件的程序中如果需要就可以取出有关信息。 监听器 事件源产生事件后,就要有相应的处理者来接收事件对象,并对其进行处理。事件的处理者要时刻监听是否有事件产生,如果监视到有事件产生,就会自动调用相应的事件处理程序进行事件处理,正因为如此,一般把事件的处理者叫事件监听器。 事件类型 对于每类事件,都有一个接口,这个接口必须由想接收这个事件的类实现。实现接口的类要求实现接口的一个或多个方法,当发生特定的事件时,就会调用这些方法。表8.4列出了这些(事件)类型,并给出了每个类型对应的接口名称,以及所要求定义的方法。这些方法的名称是易于记忆的,名称表示了会引起这个方法被调用的源或条件。 表8.4 方法类型和接口 事件类型 接口名 要实现方法 ActionEvent ActionListener actionPerformed(ActionEvent) Item ItemListener itemStateChanged(ItemEvent) Mouse motion MouseMotionListener mouseDragged(MouseEvent) mouseMoved(MouseEvent) Mouse button MouseListener mousePressed(MouseEvent) mouseReleased(MouseEvent) mouseEntered(MouseEvent) mouseExited(MouseEvent) Key KeyListener keyPressed(KeyEvent) keyReleased(KeyEvent) keyTyped(KeyEvent) Focus FocusListener focusGained(FocusEvent) focusLost(FocusEvent) Adjustment AdjustmentListener adjustmentValueChanged (AdjustmentEvent) Component ComponentListener componentMoved(ComponentEvent) componentHi

文档评论(0)

wxc6688 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档