欢迎来到天天文库
浏览记录
ID:20586782
大小:40.50 KB
页数:4页
时间:2018-10-13
《java练习拖拽和移动鼠标》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、练习32拖拽和移动鼠标本例知识点一句话讲解新学知识使用Point类记录当前光标位置使用Graphics类显示屏幕已学知识使用int类型记录鼠标点击次数使用Event类处理鼠标事件一、练习具体要求本练习制作拖拽和移动鼠标的程序,运行效果如图32-1所示。执行本练习实例后,将创建一个面板,当用户拖动鼠标时,能够在屏幕上画直线,并且面板左上方可以显示点击鼠标的坐标位置。本实例的知识点有:Point类,mouseDown类,mouseUp类的应用。二、程序及注释(1)编程思路:本例因为要实现拖拽和移动鼠标的程序,所以
2、首先要用Point类定义一个数组Point[MaxMarks],用来存放点击鼠标时光标所在位置的坐标。然后,因为要实现拖拽和移动鼠标的测试程序,所以要相应鼠标事件。函数publicbooleanmouseDown(Eventevt,intx,inty)响应按下鼠标按键事件;函数publicbooleanmouseUp(Eventevt,intx,inty)响应松开鼠标按键事件。在上述publicbooleanmouseDown(Eventevt,intx,inty)函数的内部,通过StartPoint=new
3、Point(x,y)语句生成新的Point类的对象,然后通过repaint()函数刷新屏幕;在上述publicbooleanmouseUp(Eventevt,intx,inty)函数内部,通过语句hSum+=1来统计鼠标点击的次数,最后通过repaint()函数刷新屏幕。最后,因为要同时显示鼠标的坐标位置,所以在显示屏幕内容的函数中进行处理。这是在函数publicvoidpaint(Graphicsg)中实现的。(2)程序实现及注释://Mousetest2.java//主要功能是当移动鼠标时,显示鼠标的坐标
4、位置,//当拖拽鼠标时,画一个直线。importjava.awt.Graphics;importjava.awt.Point;importjava.awt.Event;importjava.applet.Applet;importjava.awt.Color;publicclassMousetest2extendsApplet{finalintMaxMarks=40;intCurMarks=0;PointMarkStarts[]=newPoint[MaxMarks];PointMarkEnds[]=newPo
5、int[MaxMarks];PointStartPoint,CurPoint;StringCurMessage="";//按下鼠标按键时调用的方法。publicbooleanmouseDown(Eventevt,intx,inty){if(CurMarks6、rkStarts[CurMarks]=StartPoint;MarkEnds[CurMarks]=CurPoint;CurMarks++;StartPoint=null;CurPoint=null;repaint();}returntrue;}//当拖拽鼠标时调用的方法。publicbooleanmouseDrag(Eventevt,intx,inty){if(CurMarks7、的方法。publicbooleanmouseMove(Eventevt,intx,inty){CurMessage="鼠标的坐标位置为("+x+","+y+")";repaint();returntrue;}publicvoidpaint(Graphicsg){intx1,y1,x2,y2;g.drawString(CurMessage,10,10);for(inti=0;i8、x;y2=MarkEnds[i].y;g.setColor(Color.blue);g.drawLine(x1,y1,x2,y2);}if(StartPoint!=null){x1=StartPoint.x;y1=StartPoint.y;x2=CurPoint.x;y2=CurPoint.y;g.setColor(Color.blue);g.drawLine(x1,y1,x2,y2);}}}三、练
6、rkStarts[CurMarks]=StartPoint;MarkEnds[CurMarks]=CurPoint;CurMarks++;StartPoint=null;CurPoint=null;repaint();}returntrue;}//当拖拽鼠标时调用的方法。publicbooleanmouseDrag(Eventevt,intx,inty){if(CurMarks7、的方法。publicbooleanmouseMove(Eventevt,intx,inty){CurMessage="鼠标的坐标位置为("+x+","+y+")";repaint();returntrue;}publicvoidpaint(Graphicsg){intx1,y1,x2,y2;g.drawString(CurMessage,10,10);for(inti=0;i8、x;y2=MarkEnds[i].y;g.setColor(Color.blue);g.drawLine(x1,y1,x2,y2);}if(StartPoint!=null){x1=StartPoint.x;y1=StartPoint.y;x2=CurPoint.x;y2=CurPoint.y;g.setColor(Color.blue);g.drawLine(x1,y1,x2,y2);}}}三、练
7、的方法。publicbooleanmouseMove(Eventevt,intx,inty){CurMessage="鼠标的坐标位置为("+x+","+y+")";repaint();returntrue;}publicvoidpaint(Graphicsg){intx1,y1,x2,y2;g.drawString(CurMessage,10,10);for(inti=0;i8、x;y2=MarkEnds[i].y;g.setColor(Color.blue);g.drawLine(x1,y1,x2,y2);}if(StartPoint!=null){x1=StartPoint.x;y1=StartPoint.y;x2=CurPoint.x;y2=CurPoint.y;g.setColor(Color.blue);g.drawLine(x1,y1,x2,y2);}}}三、练
8、x;y2=MarkEnds[i].y;g.setColor(Color.blue);g.drawLine(x1,y1,x2,y2);}if(StartPoint!=null){x1=StartPoint.x;y1=StartPoint.y;x2=CurPoint.x;y2=CurPoint.y;g.setColor(Color.blue);g.drawLine(x1,y1,x2,y2);}}}三、练
此文档下载收益归作者所有