资源描述:
《java编程实例27469》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java编程实例:抓不住的方块本例知识点一句话讲解新学知识使用Graphics类制作方块使用java.awt.Event类响应鼠标动作已学知识使用Color类设置方块的颜色使用int类记录光标的位置一、练习具体要求本练习制作抓不住的方块的实例。如图96-1所示,程序执行后,创建一个含有方块的面板,用户可以通过鼠标抓取方块,但是,无论用户怎样努力,方块总是朝着与鼠标运动相反的方向运动,这就是抓不住的方块。二、程序及注释(1)编程思路:首先,本练习因为要制作抓不住的方块的实例,所以首先要制作界面中的方块,先通过Graphics类的对象函数g.setColor(Col
2、or.red)设置方块的颜色为红色,然后通过语句g.drawRect(0,0,size().width-1,size().height-1)和g.drawRect(mx,my,(size().width/10)-1,(size().height/10)-1)绘制出两个矩形,这样就完成了方块的制作。然后,为了实现“抓不住方块”的效果,所以要响应鼠标事件,通过函数publicbooleanmouseDown(java.awt.Eventevt,intx,inty响应按下鼠标的动作,通过光标位置的判断来避免鼠标抓到界面中的方块。(2)程序实现及注释://MouseTr
3、ack.javaimportjava.awt.Graphics;importjava.lang.Math;importjava.awt.Color;publicclassMouseTrackextendsjava.applet.Applet{//变量声明intmx,my;intonaroll;//初始化小程序publicvoidinit(){onaroll=0;resize(500,500);setBackground(Color.black);}//画屏函数publicvoidpaint(Graphicsg){g.setColor(Color.red);g.d
4、rawRect(0,0,size().width-1,size().height-1);mx=(int)(Math.random()*1000)%(size().width-(size().width/10));my=(int)(Math.random()*1000)%(size().height-(size().height/10));g.drawRect(mx,my,(size().width/10)-1,(size().height/10)-1);}//响应按下鼠标publicbooleanmouseDown(java.awt.Eventevt,intx,
5、inty){requestFocus();if((mx0){switch(onaroll%4){case0:break;case1:break;case2:break;case3:break;}onaroll++;if(onaroll>5)getAppletContext().showStatus("You'reonyourwaytoTHEHALLOFFAME:"+onaroll+"Hits!");elsegetApp
6、letContext().showStatus("YOU'REONAROLL:"+onaroll+"Hits!");}else{getAppletContext().showStatus("HITITAGAIN!AGAIN!");onaroll=1;}}else{getAppletContext().showStatus("Youhitnothingat("+x+","+y+"),exactly");onaroll=0;}repaint();returntrue;}//响应移动鼠标publicbooleanmouseMove(java.awt.Eventevt,
7、intx,inty){if((x%3==0)&&(y%3==0))repaint();returntrue;}//响应鼠标进入publicvoidmouseEnter(){repaint();}//响应鼠标退出publicvoidmouseExit(){onaroll=0;repaint();}//响应按下键盘publicvoidkeyDown(intkey){requestFocus();onaroll=0;}}三、练习效果(如图96-1所示)本实例代码编写完毕,存盘为:C:j2sdk1.4.0javaprogramsMouseTrack.java。打开计
8、算机的命令提示符窗口,然