用户行为、源对象和事件类型 用户行为 源对象 事件类型 点击按钮 JBut七on Ac七 nonEvent 点击复选框 CHeckbOx I temEvent ActionEvent 点击单选按钮 RAdiobUtton ItemEvent ActionEvent 在文本框按下回车键 TExtfIeld Ac七i。 nEver七 选定一个新项 JCombobox ItemEvent ActionEvent 窗口打开、关闭、最小化等 W主ndow WindowEvent 按下、释放、点击鼠标等 Component Mouseevent 释放或按下键盘上的键 Component Keyevent 注:如一个组件能够发生某个事件,则这个组件的任何子类 都能发生同样类型的事件
用户行为、源对象和事件类型 用户行为 源对象 事件类型 点击按钮 JButton ActionEvent 点击复选框 JCheckBox ItemEvent, ActionEvent 点击单选按钮 JRadioButton ItemEvent, ActionEvent 在文本框按下回车键 JTextField ActionEvent 选定一个新项 JComboBox ItemEvent, ActionEvent 窗口打开、关闭、最小化等 Window WindowEvent 按下、释放、点击鼠标等 Component MouseEvent 释放或按下键盘上的键 Component KeyEvent 注:如一个组件能够发生某个事件,则这个组件的任何子类 都能发生同样类型的事件
事件的监听、注册和处理 Java使用事件委托处理模型来处理事件:在源对 象上的外部用户行为触发事件,监听该事件的对 象自动调用相应的事件处理方法进行处理 如何成为源对象上事件的监听器? 监听器对象的类必须实现相应的事件监听器接口 Java为每一种类型的GUI事件都提供了监听器接口。 通常事件ⅹ Event的监听接口命名为 LIStener。监听接 口包含处理事件的方法。 源对象必须注册监听器对象。一般来说, XEvent的注 册方法名为 addXListener。一个源对象可以注册多个监 听器,以对多种事件起作用
事件的监听、注册和处理 Java使用事件委托处理模型来处理事件:在源对 象上的外部用户行为触发事件,监听该事件的对 象自动调用相应的事件处理方法进行处理。 如何成为源对象上事件的监听器? – 监听器对象的类必须实现相应的事件监听器接口。 Java为每一种类型的GUI事件都提供了监听器接口。 通常事件XEvent的监听接口命名为XListener。监听接 口包含处理事件的方法。 – 源对象必须注册监听器对象。一般来说,XEvent的注 册方法名为addXListener。一个源对象可以注册多个监 听器,以对多种事件起作用
事件、事件监听接口和监听接口方法 Event Class istener Interface Listener Methods(handlers) Ac七i。 eVent Ac七i。 lIstens actionPerformed(ActionEvent) 工七 emEvent 工 temlistener itemState Changed(ItemEvent WindowEvent W主 ndowlistener windowClosing(WindowEvent) ndowOpened(WindowEvent) windowIconified(WindowEvent windowDeiconified (WindowEvent) dowclosed(WindowEvent) windowActivated (windowevent) ndowDeactivated (windowE vent) ContainerEvent ContainerListener componentAdded(ContainerEvent) componentRemoved (ContainerEvent) MouseEvent Mouselistener mousepressed (mouseevent) mouseReleased (Mouseevent) clicked (MouseEvent) mouseExited (Mouseevent) mouseEntered (MouseEvent) keyevent KeyListener keyPressed (keyEvent keyreleased (keyevent) keyTypeed (keyevent)
事件、事件监听接口和监听接口方法 Event Class Listener Interface Listener Methods (Handlers) ActionEvent ActionListener actionPerformed(ActionEvent) ItemEvent ItemListener itemStateChanged(ItemEvent) WindowEvent WindowListener windowClosing(WindowEvent) windowOpened(WindowEvent) windowIconified(WindowEvent) windowDeiconified(WindowEvent) windowClosed(WindowEvent) windowActivated(WindowEvent) windowDeactivated(WindowEvent) ContainerEvent ContainerListener componentAdded(ContainerEvent) componentRemoved(ContainerEvent) MouseEvent MouseListener mousePressed(MouseEvent) mouseReleased(MouseEvent) mouseClicked(MouseEvent) mouseExited(MouseEvent) mouseEntered(MouseEvent) KeyEvent KeyListener keyPressed(KeyEvent) keyReleased(KeyEvent) keyTypeed(KeyEvent)
委托代理模型 Register by invoking Trigger an event source. addXlistener(listener); User source: sourceclas listener: Listener Class Action +addXListener(LIstener listener) Keep it a list LIstener event: XEvent listener 1 Invoke listener 2 listener l handler(event) handler(XEvent event listener2. handler(event) histenern stenen handler(event) Internal function of the source object
委托代理模型 source: SourceClass +addXListener(XListener listener) User listener: ListenerClass Action Trigger an event XListener +handler(XEvent event) Internal function of the source object event: XEvent listener1 listener2 … listenern +handler( XEvent Register by invoking source.addXListener(listener); Keep it a list Invoke listener1.handler(event) listener2.handler(event) … listenern.handler(event)