資源描述:
《java練習(xí)拖拽和移動(dòng)鼠標(biāo)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、練習(xí)32拖拽和移動(dòng)鼠標(biāo)本例知識(shí)點(diǎn)一句話講解新學(xué)知識(shí)使用Point類記錄當(dāng)前光標(biāo)位置使用Graphics類顯示屏幕已學(xué)知識(shí)使用int類型記錄鼠標(biāo)點(diǎn)擊次數(shù)使用Event類處理鼠標(biāo)事件一、練習(xí)具體要求本練習(xí)制作拖拽和移動(dòng)鼠標(biāo)的程序,運(yùn)行效果如圖32-1所示。執(zhí)行本練習(xí)實(shí)例后,將創(chuàng)建一個(gè)面板,當(dāng)用戶拖動(dòng)鼠標(biāo)時(shí),能夠在屏幕上畫直線,并且面板左上方可以顯示點(diǎn)擊鼠標(biāo)的坐標(biāo)位置。本實(shí)例的知識(shí)點(diǎn)有:Point類,mouseDown類,mouseUp類的應(yīng)用。二、程序及注釋(1)編程思路:本例因?yàn)橐獙?shí)現(xiàn)拖拽和移動(dòng)鼠標(biāo)的程序,所以
2、首先要用Point類定義一個(gè)數(shù)組Point[MaxMarks],用來存放點(diǎn)擊鼠標(biāo)時(shí)光標(biāo)所在位置的坐標(biāo)。然后,因?yàn)橐獙?shí)現(xiàn)拖拽和移動(dòng)鼠標(biāo)的測(cè)試程序,所以要相應(yīng)鼠標(biāo)事件。函數(shù)publicbooleanmouseDown(Eventevt,intx,inty)響應(yīng)按下鼠標(biāo)按鍵事件;函數(shù)publicbooleanmouseUp(Eventevt,intx,inty)響應(yīng)松開鼠標(biāo)按鍵事件。在上述publicbooleanmouseDown(Eventevt,intx,inty)函數(shù)的內(nèi)部,通過StartPoint=new
3、Point(x,y)語句生成新的Point類的對(duì)象,然后通過repaint()函數(shù)刷新屏幕;在上述publicbooleanmouseUp(Eventevt,intx,inty)函數(shù)內(nèi)部,通過語句hSum+=1來統(tǒng)計(jì)鼠標(biāo)點(diǎn)擊的次數(shù),最后通過repaint()函數(shù)刷新屏幕。最后,因?yàn)橐瑫r(shí)顯示鼠標(biāo)的坐標(biāo)位置,所以在顯示屏幕內(nèi)容的函數(shù)中進(jìn)行處理。這是在函數(shù)publicvoidpaint(Graphicsg)中實(shí)現(xiàn)的。(2)程序?qū)崿F(xiàn)及注釋://Mousetest2.java//主要功能是當(dāng)移動(dòng)鼠標(biāo)時(shí),顯示鼠標(biāo)的坐標(biāo)
4、位置,//當(dāng)拖拽鼠標(biāo)時(shí),畫一個(gè)直線。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="";//按下鼠標(biāo)按鍵時(shí)調(diào)用的方法。publicbooleanmouseDown(Eventevt,intx,inty){if(CurMarks6、rkStarts[CurMarks]=StartPoint;MarkEnds[CurMarks]=CurPoint;CurMarks++;StartPoint=null;CurPoint=null;repaint();}returntrue;}//當(dāng)拖拽鼠標(biāo)時(shí)調(diào)用的方法。publicbooleanmouseDrag(Eventevt,intx,inty){if(CurMarks7、的方法。publicbooleanmouseMove(Eventevt,intx,inty){CurMessage="鼠標(biāo)的坐標(biāo)位置為("+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);}}}三、練