1、练习 33 按下和松开鼠标本例知识点 一句话讲解使用 Point 类 记录当前光标位置新学知识 使用 Graphics 类 显示屏幕使用 int 类型 记录鼠标点击次数已学知识 使用 Event 类 处理鼠标事件一、练习具体要求本例制作按下和松开鼠标的测试程序,运行效果如图 33-1 所示。执行本例实例后,将创建一个面板,当用户点击鼠标时,能够显示一个字母“A”,并且面板左上方可以显示点击鼠标的次数。本实例的知识点有:Point 类,mouseDown 类,mouseUp 类的应用。二、程序及注释(1)编程思路:本例因为要实现当用户点击鼠标时输出一个字母 A 的效果,所以首先要用 Point
2、类定义一个数组 PointMaxMarks,用来存放点击鼠标时光标所在位置的坐标。然后,因为要实现按下和松开鼠标的测试时的测试程序,所以要相应鼠标事件。函数public boolean mouseDown(Event evt,int x,int y)响应按下鼠标按键事件;函数public boolean mouseUp(Event evt,int x,int y)响应松开鼠标按键事件。在上述public boolean mouseDown(Event evt,int x,int y)函数的内部,通过MarksCurMarks+=new Point(x,y)语句生成新的 Point 类的对象,然
3、后通过 repaint()函数刷新屏幕;在上述 public boolean mouseUp(Event evt,int x,int y)函数内部,通过语句 hSum +=1 来统计鼠标点击的次数,最后通过 repaint()函数刷新屏幕。最后,因为要同时显示字母 A 和鼠标点击次数,所以在显示屏幕内容的函数中进行处理。这是在函数public void paint(Graphics g)中实现的。在程序开始处,定义了一个整数类型的变量hPaintMark,当按下鼠标时,在其对应函数 mouseDown()中将 hPaintMark 设置为 1;当松开鼠标时,在其对应函数 mouseUp ()中
4、将 hPaintMark 设置为 2。这样在 public void paint(Graphics g)函数中,通过 switch(hPaintMark)语句来区分输出字母 A 和输出鼠标事件的次数两种情况,通过 g.drawstring()函数输出相应的内容。(2) 程序实现及注释:/Mousetest1.java/主要功能是当按下鼠标按键时,输出一个字符 A,/当松开鼠标按键时,对鼠标动作进行计数。import java.awt.Graphics;import java.awt.Point;import java.awt.Event;import java.applet.Applet;pu
5、blic class Mousetest1 extends Applet final int MaxMarks=40;int CurMarks=0;int hSum=0;int hPaintMark=0;Point Marks=new PointMaxMarks;/按下鼠标按键时调用的方法。public boolean mouseDown(Event evt,int x,int y) if(CurMarks按下和松开按键的测试程序 ,然后保存为 Mousetest1.html 的网页文件。本例制作完毕,用浏览器打开 Mousetest1.html 文件便可以看到制作效果。图 33-1 练习效果四、总结提高通过制作按下和松开鼠标的实例,运用了 Java2 中的界面技术和消息响应技术。通过界面技术,制作出鼠标点击次数的统计和鼠标点击时输出的字符信息。通过消息响应技术,可以响应用户对鼠标的操作,实现人机交互。