项目效果图: 源代码: import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.geom.Rectangle2D; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.*; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; /* author: 蒋冰*/ public class KeyBoard extends JFrame{ private int direction = 0; private int judge = 0; private Panel panel = new Panel(); private RectLabel label[] = new RectLabel[1200]; private HashMap map = new HashMap(); private ArrayList list = new ArrayList(); private Point[] point = new Point[1200]; private int targetX = 0; private int targetY = 0; private static int goal = 3; private int speed; private RectLabel targetLabel = new RectLabel(); private static KeyBoard frame = new KeyBoard(); public static void main(String[] args){ frame.setVisible(true); } public KeyBoard(){ super(); addWindowListener(new WindowAdapter() { @Override public void windowActivated(WindowEvent arg0) { 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); Random ra = new Random(); targetX = ra.nextInt(30)*10 + 50; targetY = ra.nextInt(20)*10 + 50; tar...