资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
项目效果图:源代码:importjava.awt.Color;importjava.awt.Container;importjava.awt.Dimension;importjava.awt.Graphics;importjava.awt.Graphics2D:importjava.awt.Point;importjava.awt.event.ComponentAdapter;importjava.awt.event.ComponentEvent;importjava.awt.event.KeyAdapter;importjava.awt.event.KeyEvent;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.awt.event.MouseMotionAdapter;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjava.awt.geom.Rectangle2D;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Map:importjava.util.*;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPanel;/*author:蒋冰*/publicclassKeyBoardextendsJFrameprivateintdirection=0;privateintjudge=0;privatePanelpanel=newPanel();privateRectLabellabel=newRectLabel1200;privateHashMapmap=newHashMap();privateArrayListlist=newArrayList();privatePointpoint=newPoint1200;privateinttargetx=0;privateinttargetY=0;privatestaticintgoal=3;privateintspeed;privateRectLabeltargetLabel=newRectLabel();privatestaticKeyBoardframe=newKeyBoard();publicstaticvoidmain(Stringargs)frame.setvisible(true);publicKeyBoard()super();addWindowListenernewWindowAdapter()OverridepublicvoidwindowActivated(WindowEventarg0)map.put(KeyEvent.VK_RIGHT,KeyEvent.VK_LEFT);map.put(KeyEvent.VK_LEFT,KeyEvent.VK_RIGHT);map.put(KeyEvent.VK_UP,KeyEvent.VK_DOWN);map.put(KeyEvent.VK_DOWN,KeyEvent.VK_UP);map.put(0,0);map.put(KeyEvent.VK_G,0);Randomra=newRandom();targetX=ra.nextint(30)*10+50;targetY=ra.nextint(20)*10+50;targetLabel.setLocation(targetX,targetY););setBackground(Colorgray);setLayout(null);setBounds(400,200,400,300);addKeyListener(newKeyAdapter()publicvoidkeyPressed(KeyEvente)if(e.getKeyCode()=map.get(direction)return;elsedirection=e.getKeyCode(););for(inti=1;igoal;i+)labeli=newRectLabel();labeli.setBounds(-10,-10,10,10);list.add(labeli);panel.setBounds(-10,-10,10,10);panel.addComponentListener(newComponentAdapter()OverridepublicvoidcomponentMoved(ComponentEventarg0)point0=panel.getLocation();if(Math.abs(point0.x-targetX)5&Math.abs(point0.y-targetY)5)Randomra=newRandom();targetX=ra.nextInt(30)*10+50;targetY=ra.nextInt(20)*10+50;while(true)for(inti=1;igoal-1;i+)Pointp=labeli.getLocation();if(p.x=targetX)&(p.y=targetY)break;elsejudge+;if(judge=goal-2)break;elsejudge=0;targetX=ra.nextInt(30)*10+50;targetY=ra.nextInt(20)*10+50;targetLabel.setLocation(targetX,targetY);labelgoal=newRectLabel();labelgoal.setBounds(-10,-10,10,10);pointgoal-1=newPoint();list.add(labelgoal);goal+;for(inti=1;ilist.size();i+)pointi=labeli.getLocation();labeli.setLocation(pointi-1);frame.add(labeli);labellist.size().setLocation(pointlist.size()-1);frame.add(labellist.size();for(inti=3;ilist.size();i+)if(Math.abs(label1.getLocation().x-labeli.getLocation().x)=1&Math.abs(label1.getLocation().y-labeli.getLocation().y)=1)direction=KeyEvent.VK_G;);targetLabel.setBounds(200,100,10,10);add(targetLabel);add(panel);classPanelextendsJPanelimplementsRunnableprivateintflag=0;privateintx=0;privateinty=0;publicPanel()setPreferredSize(newDimension(10,10);newThread(this).start();Overridepublicvoidrun()while(true)if(direction=KeyEvent.VK_RIGHT)if(x=0)x-=10;setLocation(x,y);elsedirection=KeyEvent.VK_G;if(direction=KeyEvent.VK_DOWN)if(y=0)y-=10;setLocation(x,y);elsedirection=KeyEvent.VK_G;tryif(goal30)speed=goal;elsespeed=30;Thread.sleep(400-speed*10);catch(InterruptedExceptione)e.printStackTrace();repaint();classRectLabelextendsJLabelprivateintr=5;/小球半径privateintwidth=r*2;/球宽度privateintheight=r*2;/球高度privateColorballColor=Color.BLUE;/默认颜色publicRectLabel()setPreferredSizenewDimension(width,height);/初始化大小OverrideprotectedvoidpaintComponent(Graphicsg)super.paintComponent(g);g.setColorballColor);/设置默认颜色g.fillRect(0,0,width,height);/在标签上绘制球体
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号