鼠标与键盘事件的处理课件_第1页
鼠标与键盘事件的处理课件_第2页
鼠标与键盘事件的处理课件_第3页
鼠标与键盘事件的处理课件_第4页
鼠标与键盘事件的处理课件_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十章 鼠标与键盘事件的处理 教学目的与要求教学目的与要求 鼠标与键盘是用户与计算机进行会话的主要手段,计算机如何响应使用者的操作就是本章所要介绍的,鼠标与键盘事件的处理是每个程序都要用到的操作,这些内容对进一步编写复杂程序是至关重要的,因此要求学生要熟练掌握与运用。通过本章的学习,使学生能熟练地掌握鼠标的MouseEvent类及鼠标各种操作(状态)的处理方法;MouseListener接口和MouseMotionListener接口及其事件处理过程;鼠标左键与右键的区别;控制鼠标的指针形状。键盘事件KeyEvent类及键盘操作的三个方法;KeyListener接口及其事件处理过程;学生应记住

2、常用的键码。能熟练地对鼠标和键盘的有关操作进行应用编程。 教学重点与难点教学重点与难点 鼠标的MouseEvent类及鼠标各种操作(状态)的处理方法、MouseListener接口和MouseMotionListener接口及其事件处理过程、鼠标的各种状态下的形状的控制、键盘事件KeyEvent类及键盘操作的三个方法、KeyListener接口及其事件处理过程是本章的重点。对鼠标和键盘的有关操作进行应用编程是本章的难点。 教学方法与手段教学方法与手段 先通过一个用鼠标画图的程序讲授鼠标的事件处理过程,进而再讲授复杂鼠标事件的处理程序。通过堆积木的程序讲授键盘事件的处理过程,进而讲授复杂键盘事件

3、的处理程序。 利用多媒体投影进行直观演示。 理论讲授与上机实验相结合。第一节 MousListener接口及事件处理 一、一、MouseListener接口及其方法接口及其方法 任何组件上都可以发生鼠标事件,如:鼠标进入组件、退出组件、在组件上方单击鼠标、拖动鼠标等都发生鼠标事件,也就是说,组件可以成为发生鼠标事件的事件源。 使用MouseListener接口可以处理5种操作发生的鼠标事件: (1)在事件源上按下鼠标键。 (2)在事件源上释放鼠标键。 (3)在事件源上单击鼠标键。 (4)鼠标进入事件源。 (5)鼠标退出事件源。鼠标事件的类型是MouseEvent,即当发生鼠标事件时,Mouse

4、Event类自动创建一个事件对象。 MouseEvent类中有下列几个重要的方法: (1)getX() 获取鼠标在事件源坐标系中的x坐标。 (2)getY() 获取鼠标在事件源坐标系中的y坐标。 (3)getModifiers() 获取鼠标的左键或右键。鼠标的左键和右键分别使用InputEvent类中的常量BUTTON1_MASK和BUTTON3_MASK来表示。 (4)getClickCount() 获取鼠标被单击的次数。 (5)getSource() 获取发生鼠标事件的事件源。 事件源获得监视器的方法是 addMouseListener(监视器)。 MouseListener接口中有如下方

5、法: (1)mousePressed(MouseEvent) 负责处理鼠标按下事件。即,当你在事件源按下鼠标时,监视器发现这个事件后将自动调用接口中的这个方法对事件作出处理。 (2)mouseReleased(MouseEvent) 负责处理鼠标释放事件。即,当你在事件源释放鼠标时,监视器发现这个事件后将自动调用接口中的这个方法对事件作出处理。 (3)mouseEntered(MouseEvent) 负责处理鼠标进入容器事件。即,当鼠标进入时,监视器发现这个事件后将自动调用接口中的这个方法对事件作出处理。 (4)mouseExited(MouseEvent) 负责处理鼠标离开事件。即,当鼠标离

6、开容器时,监视器发现这个事件后将自动调用接口中的这个方法对事件作出处理。 (5)mouseClicked(MouseEvent) 负责处理单击鼠标事件。即,当鼠标被单击时,监视器发现这个事件后将自动调用接口中的这个方法对事件作出处理。 二、例题选讲二、例题选讲 现在我们给出一个小程序的例子,在这个小程序中有一个文本框,它负责记录鼠标事件。当鼠标进入小程序时,文本区显示“鼠标进来了”;当鼠标离开时,文本区显示“鼠标走开了”;当鼠标被按下时,文本区显示“鼠标按下了”,并显示鼠标的坐标。例1、MouseListener接口事件的处理演示18_01applet.java 通过本例应掌握的知识点是:Mo

7、usListener接口事件的处理全过程。如何判断鼠标的动作、如何判断鼠标单击和双击、如何获得鼠标当前的坐标等。 要注意该接口有5个方法,不论你是否使用某一个方法都必须实现这5个方法。 在下面的例子中,当在画布上按下鼠标左键时,在鼠标位置处绘制一个园;当按下鼠标右键时,在鼠标位置处绘制一个矩形;当鼠标退出画布时,清除绘制的全部图形。例2、利用MouseListener接口事件作图演示18_02application.java 通过本例应掌握的知识点是:如何利用MousListener接口事件的处理来作图全过程。要掌握如何记录左右键、如何记录鼠标的位置等技巧。 在下面的例子中,分别监视并处理按钮

8、、文本框和容器上的鼠标事件。注意,每个事件源的坐标系是该事件源的左上角。例3、对多个事件源进行处理演示18_03applet.java 通过本例应掌握的知识点是:对多个事件源上发生的鼠标事件进行处理及事件源内的相对坐标。第二节第二节 MouseMotionListener接口及事件处理接口及事件处理 一、一、 MouseMotionListener接口及其方法接口及其方法 MouseMotionListener接口可以处理以下两种操作发生的鼠标事件: (1)在事件源上拖动鼠标。 (2)在事件源上移动鼠标。 鼠标事件的类型是MouseEvent,即当发生鼠标事件时,MouseEvent类自动创建

9、一个事件对象。 事件源获得监视器的方法是 addMouseMotionListener(监视器)。 针对上面的两种事件,MouseMotionListener接口中有如下方法: (1)mouseDragged(MouseEvent) 负责处理鼠标拖动事件。即,当你在事件源拖动鼠标时,监视器发现这个事件后将自动调用接口中的这个方法对事件作出处理。 (2)mouseMoved(MouseEvent) 负责处理鼠标移动事件。即,当你在事件源移动鼠标时,监视器发现这个事件后将自动调用接口中的这个方法对事件作出处理。 二、例题选讲二、例题选讲 下例是一个非常简单的用鼠标作画的小程序。其原理很简单,只要我

10、们能用鼠标画点,那么就可以用鼠标自由作画了。我们已经会用 drawLine(int x1,int y1,int x2,int y2)画从点(x1,y1)到点(x2,y2)的直线,那么当直线的起点和终点相同时,就画出了一个点。例1、用MouseMotionListener接口事件画图演示18_04applet.java 通过本例应掌握的知识点是:MousMotionListener接口事件的处理全过程(鼠标的移动和鼠标的拖动)。 本例中还应注意的另一个技巧是,拖动鼠标时(按着鼠标左键),我们就获得了鼠标拖动时的坐标,同时调用repaint()方法画下这个坐标点。我们已经知道,在程序中调用repa

11、int()方法时,程序首先清除paint()方法以前所画的内容,然后再调用paint()方法。但有时我们不想让程序清除paint()方法以前所画的所有内容。实际上当我们调用repaint()方法时,程序自动地调用update(Graphics g)方法(从父类Component继承下来的)清除paint()方法以前所画的内容,然后再调用paint()方法。因此我们可以在我们的小程序中重写这个update(Graphics g)方法(即隐藏父类的方法),根据需要来清除哪些部分或保留哪些部分。在这个例子中,我们在update(Graphics g)方法体内没有清除以前所画的内容(如果准备清除可使用

12、clearRect方法)而是继续调用paint()方法。 上面的例子画图形的线条细,只有一个像素点粗。其实可以通过画实心圆或实心矩形来改变线条的粗细。下面是一个略微复杂的例子。在这个例子中我们可以控制线条的粗细(由变量con控制)和颜色(由按钮控制),而且我们还可以使用橡皮擦掉所画的图形。另外还可以使用前面介绍的方法控制鼠标的形状。例2、颜色、线条粗细、擦除效果设计演示18_05applet.java 通过本例应掌握的知识点是:画线的粗细、颜色的控制;随鼠标拖动的擦除和所画图形的全面清除。还应注意本例中使用的“橡皮擦通知”和“清除通知”的技巧。第三节 KeyListener接口及事件处理 一、

13、一、KeyListener接口及其方法接口及其方法 当按下、释放或敲击键盘上一个键时就发生了键盘事件,在Java l.2事件模式中,必须要有发生事件的事件源。当一个组件处于激活状态时,敲击键盘上一个键就导致这个组件上发生了键盘事件。 事件源使用addKeyListener方法获得监视器。 监视器是一个对象,创建该对象的类必须实现接口KeyListener。接口KeyListener中有3个方法: public void keyPressed(KeyEvent e) public void keyTyped(KeyEvent e) public void KeyReleased(KeyEvent e) 当你按下键盘上某个键时,监视器就会发现,然后方法keyPressed方法会自动执行,并且KeyEvent类自动创建一个对象传递给方法keyPressed中的参数e。方法keyTyped是Pressedkey和keyReleased方法的组合,当键被按下又释放时,keyTyped方法被调用。 用KeyEvent类的public int getKeyCode()方法,可以判断哪个键被按下、敲击或释放,getKeyCode方法返

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论