《最新java实用教程第20讲事件处理(二(共15张ppt课件).pptx》由会员分享,可在线阅读,更多相关《最新java实用教程第20讲事件处理(二(共15张ppt课件).pptx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第19讲事件处理(二)20.1 20.1 焦点事件焦点事件(shjin)(shjin)20.2 20.2 窗口事件窗口事件20.3 20.3 鼠标事件鼠标事件20.4 20.4 键盘事件键盘事件20.5 20.5 适配器类适配器类讲后练习讲后练习第一页,共十五页。20.1 20.1 焦点焦点(jiodin)(jiodin)事件事件当组件得到焦点或失去焦点时会产生FocusEvent事件,与此事件相对(xingdu)应的监听器接口为FocusEventListener,接口中的focusGained(FocusEvent e)方法和focusLost(FocusEvent e)方法可以接收Foc
2、usEvent事件。为组件注册FocusEvent事件监听器对象的方法为addFocusEventListener (Listener)。第二页,共十五页。实现监听器接口的方法有三种:(1)外部类实现监听器接口一个类实现某个接口必须实现这个接口中的所有抽象(chuxing)方法,外部类实现ActionListener接口时,必须实现此接口中的actionPerformed(ActionEvent e)方法。(2)内部类实现监听器接口也可以定义一个内部类来实现ActionListener接口,使用内部类创建的对象来监视组件。(3)匿名内部类实现监听器接口事件监听最常用的方法是使用匿名内部类的对象
3、作为监听器对象来监听组件,这时匿名内部类必须实现监听器接口。第三页,共十五页。20.2 20.2 窗口窗口(chungku)(chungku)事件事件当对窗口进行如下操作时,可产生(chnshng)WindowEvent事件:(1)打开窗口;(2)关闭窗口时;(3)关闭窗口后;(4)窗口最小化;(5)窗口最大化;(6)窗口被激活;(7)窗口失去焦点。第四页,共十五页。为窗口注册WindowEvent事件监听器对象的方法为addWindowListener (Listener)。与WindowEvent事件所对应的监听器接口为WindowListener,此接口中包含七个方法,对应窗口的七种操作
4、:(1)public void windowActivated(WindowEvent e):将Window设置为活动 Window时调用。 (2)public void windowClosed(WindowEvent e):因对窗口调用dispose而将其关闭时调用。(3)public void windowClosing(WindowEvent e):用户试图从窗口的系统(xtng)菜单中关闭窗口时调用。 第五页,共十五页。(4)public void windowDeactivated(WindowEvent e):当Window不再是活动(hu dng)Window时调用。 (5)p
5、ublic void windowDeiconified(WindowEvent e):窗口从最小化状态变为正常状态时调用。 (6)public void windowIconified(WindowEvent e):窗口从正常状态变为最小化状态时调用。(7)public void windowOpened(WindowEvent e):窗口首次变为可见时调用。第六页,共十五页。20.3 20.3 鼠标事件鼠标事件(shjin)(shjin)MouseEvent(鼠标事件)是指组件中发生鼠标动作的事件。当且仅当动作发生时鼠标光标处于特定(tdng)组件边界未被遮掩的部分上,才认为在该组件上发生
6、了鼠标动作。与MouseEvent事件相对应的监听器接口为MouseMotionListener和MouseListener,组件注册MouseEvent事件监听器对象的方法分别为addMouseMotionListener(Listener)和addMouseListener(Listener)。MouseMotionListener接口包含两个方法:第七页,共十五页。(1)public void mouseDragged(MouseEvent e):鼠标按键(n jin)在组件上按下并拖动时调用。 (2)public void mouseMoved(MouseEvent e):鼠标光标移动
7、到组件上但无按键按下时调用。MouseListener接口包含五个方法:(1)public void mouseClicked(MouseEvent e):鼠标按键在组件上单击(按下并释放)时调用。 (2)public void mouseEntered(MouseEvent e):鼠标进入到组件上时调用。第八页,共十五页。(3)public void mouseExited(MouseEvent e):鼠标离开组件时调用(dioyng)。(4)public void mousePressed(MouseEvent e):鼠标按键在组件上按下时调用。(5)public void mouseRe
8、leased(MouseEvent e):鼠标按钮在组件上释放时调用。第九页,共十五页。20.4 20.4 键盘键盘(jinpn)(jinpn)事件事件当按下、释放或键入某个键时,组件会产生KeyEvent(键盘事件)。与KeyEvent事件相对应的监听器接口为KeyListener,为组件注册KeyEvent事件监听器对象(duxing)的方法为addKeyListener(Listener)。KeyListener接口包含三个方法:(1)public void keyPressed(KeyEvent e):按下某个键时调用。 (2)public void keyReleased(KeyEv
9、ent e):释放某个键时调用。 第十页,共十五页。(3)public void keyTyped(KeyEvent e):键入某个键时调用。 另外,KeyEvent类中有两个非常有用的方法(fngf):(1)public int getKeyCode():返回一个键盘码(2)public char getKeyChar():返回与此事件中的键关联的字符。第十一页,共十五页。20.5 20.5 适配器类适配器类 在本节讲述(jingsh)的几个监听器接口都由多个方法,如MouseListener中有五个方法,而WindowListener接口中则定义了七个方法。在Java中,实现一个接口的类必
10、须实现这个中的所有方法,这就意味着如果我们只对WindowListener接口中名为windowClosing的方法感兴趣,但必须需实现七个方法,其它六个方法只是添加空的方法体。 书写六个没有任何操作的方法代码显然是一种乏味的工作。鉴于简化的目的,每个含有多个方法的监听器第十二页,共十五页。 接口都配有一个适配器(adapter)类,这个类实现了接口中的所有方法,但每个方法没有做任何事情。这意味着适配器类自动地满足了Java实现相关监听器接口的技术需求。可以通过扩展适配器类来指定对某些事件的响应动作,而不必实现接口中的每个方法(ActionListener这样的接口只有(zhyu)一个方法,因此没必要提供适配器类)。第十三页,共十五页。讲后练习讲后练习(linx)(linx)1、编写程序,处理(chl)鼠标拖动事件,实现拖动鼠标画圆。2、编写程序,利用KeyEvent事件,实现下图中按钮的移动。第十四页,共十五页。内容(nirng)总结第19讲事件处理(二)。讲后练习。也可以定义一个内部类来实现ActionListener接口,使用内部类创建的对象(duxing)来监视组件。(2)public void mouseMoved(MouseEvent e):鼠标光标移动到组件上但无按键按下时调用。(1)public int getKeyCode():返回一个键盘码第十五页,共十五页。