6.2.1事件处理简介 用户对应用程序进行操作时会产生事件( Event),事件源的事件发 生后,可以被传递给任何对象,前提是该对象实现( implements)了 适当的接口并且注册到该事件源。 例如,可以给按钮的动作事件( Action event注册( Register)个动作 事件侦听器( Action listener);任何一个实现了 Action listener接口的 类所生成的对象都可以注册成为按钮的动作事件侦听器。这样,当 按钮的动作事件发生时,动作事件就会传递给已注册的所有侦听器。 , ●给事件源注册事件侦听器,使用该事件源中的 addXXXListener ( listener)方法。依据事件类型的不同,注册的方法名也不同。 例如给按钮注册一个动作事件依听器: 个事件源可以注册多个侦听器,一个侦听器也可以被注册 到多个事件源 G carre
6.2.1事件处理简介 ⚫ 用户对应用程序进行操作时会产生事件(Event) ,事件源的事件发 生后,可以被传递给任何对象,前提是该对象实现(implements)了 适当的接口并且注册到该事件源。 ⚫ 例如,可以给按钮的动作事件(ActionEvent)注册(Register)一个动作 事件侦听器(ActionListener) ;任何一个实现了ActionListener接口的 类所生成的对象都可以注册成为按钮的动作事件侦听器。这样,当 按钮的动作事件发生时,动作事件就会传递给已注册的所有侦听器。 ⚫ 给事件源注册事件侦听器,使用该事件源中的addXXXListener (aListener)方法。依据事件类型的不同,注册的方法名也不同。 ⚫ 例如给按钮注册一个动作事件侦听器: aButton.addActionListener(aActionListener); 而给框架注册一个窗口事件侦听器: aFrame.addWindowListener(aWindowListener); 一个事件源可以注册多个侦听器,一个侦听器也可以被注册 到多个事件源
62.1AWT事件处理 作用 把事件对象假 生成事件对重 人事件处理器 件对 组件(事件源 事件处理器 事件监听汪删 carre
6.2.1 AWT事件处理 事件处理机制:(先理解三个重要的概念) ⚫ 事件:通常是指因用户的界面操作(如单击按钮、选择菜单、 往文本域输入内容等)而引起的组件状态或数据的改变。在 处理事件时,这些受作用的组件被称为事件源。GUI只有支 持事件处理才能实现程序与用户之间的交互。 ⚫ 事件源:发生事件的组件就是事件源 ⚫ 事件处理器:负责处理事件的方法。 Java程序对事件进行处理的方法是放在一个类对象中的,这个 类对象就是事件监听器(事件处理器)。 三者之间的关系如下:
6.2.2事件处理实例 该程序提供了一个按钮,点击该按钮可以使得应用程序在 Windows 和Meta1观感之间进行切换,源代码见例6.2.1,图6.2.1显示了 运行过程中两种不同的观感 在例6.2.1中,内部类 Look AndFeellistener实现了动作事件侦听 接口 Actionlistener。接口 Actionlistener只有一个需要实现的 方法 public void actionPerformed( Action event e)。 在类 Action Frame中,使用语句 e Actionlistener al=new LookAndFeellistener o)i °创建了对象a1,由于内部类 LookAndFeellistener实现了接口 Actionlistener,因此对象a1可以被注册到动作事件源 btnlookandFeel btnLookAndFeel stel windon Metal 这样,当事件源b 用侦听 器a对象中的acti nEy 发生 的动作事件以 的对 G carre
6.2.2事件处理实例 ⚫ 该程序提供了一个按钮,点击该按钮可以使得应用程序在Windows 和Metal观感之间进行切换,源代码见例6.2.1,图6.2.1显示了 运行过程中两种不同的观感。 ⚫ 在例6.2.1中,内部类LookAndFeelListener实现了动作事件侦听 接口ActionListener。接口ActionListener只有一个需要实现的 方法public void actionPerformed(ActionEvent e)。 ⚫ 在类ActionFrame中,使用语句: ⚫ ActionListener al=new LookAndFeelListener(); ⚫ 创建了对象al,由于内部类LookAndFeelListener实现了接口 ActionListener, 因 此 对 象 al 可 以 被 注 册 到 动 作 事 件 源 btnLookAndFeel: ⚫ btnLookAndFeel.addActionListener(al); ⚫ 这样,当事件源btnLookAndFeel发生动作事件时,就会调用侦听 器al对象中的actionPerformed(ActionEvent e)方法,并且所发生 的动作事件以一个ActionEvent类型的对象传递进来
事件处理实例-续 不仅是 JButton类型的事件源能产生动作事件 ( Action Event),也有其它类型的事件源可以产生动作事件 例如点击菜单( MEnuitem选项、双击列表框中(JLis的 选项以及在文本输入框( JTextfield、 JPasswordField中按 下回车键等,也会产生动作事件。 本小节介绍了三种(独立的类、内部类以及匿名内部类,具 体内容参见教材)方式来注册事件侦听器,希望读者都能 够掌握。因为,这三种方式都可能在别的程序员编写的程 序中出现,而你很可能需要阅读这样的程序 G carre
事件处理实例-续 ⚫ 不仅是JButton类型的事件源能产生动作事件 (ActionEvent),也有其它类型的事件源可以产生动作事件。 例如点击菜单(JMenuItem)选项、双击列表框中(JList)的 选项以及在文本输入框(JTextField、JPasswordField)中按 下回车键等,也会产生动作事件。 ⚫ 本小节介绍了三种(独立的类、内部类以及匿名内部类,具 体内容参见教材)方式来注册事件侦听器,希望读者都能 够掌握。因为,这三种方式都可能在别的程序员编写的程 序中出现,而你很可能需要阅读这样的程序
6.23使用事件适配器 ●前面我们已经知道,在缺省情形下,关闭框架( Jframe)只 是使之隐藏。可以通过 f setDefaultcloseoperation(JFrameEXIT ON CLOSE) 使得在关闭框架时应用程序退出。由于在关闭框架时,会 发生一个窗口事件( Window event),因此也可以通过捕获 该事件,然后让应用程序退出 任何实现了 Window listener接口的类所生成的对象均可以 注册到窗口事件源 G carre
6.2.3使用事件适配器 ⚫ 前面我们已经知道,在缺省情形下,关闭框架(JFrame)只 是使之隐藏。可以通过 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 使得在关闭框架时应用程序退出。由于在关闭框架时,会 发生一个窗口事件(WindowEvent),因此也可以通过捕获 该事件,然后让应用程序退出。 ⚫ 任何实现了WindowListener接口的类所生成的对象均可以 注册到窗口事件源