255
社区成员




import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MovePoint extends JFrame{
Point[] points = new Point[10];
Point you;
MyPanel pnlMain;
Timer timer;
TimerTask task;
public MovePoint(){
initialize();
}
private void initialize() {
you = new Point(150,150);//可控点
for (int i=0;i<points.length;i++) {
points[i] = new Point(i*10, i*10);//模拟你的随机点
}
this.setSize(300,300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pnlMain = new MyPanel();
timer = new Timer();
task = new TimerTask() {
public void run() {
for (Point point : points) {
Point oldPoint = new Point();
oldPoint.x = point.x;
oldPoint.y = point.y;
point.x++;
point.y++;
if (point.x>300) {
point.x = 0;
}
if (point.y>300) {
point.y = 0;
}
pnlMain.repaint(point.x,point.y,4,4);//控制重绘区域
pnlMain.repaint(oldPoint.x,oldPoint.y,4,4);//控制重绘区域
}
}
};
timer.schedule(task, 0, 100);
this.getContentPane().add(pnlMain);
addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e) {//事件监听
int code=e.getKeyCode();
switch (code) {
case KeyEvent.VK_UP:
you.y--;
pnlMain.repaint(you.x, you.y, 4, 5);//控制重绘区域
break;
case KeyEvent.VK_DOWN:
you.y++;
pnlMain.repaint(you.x, you.y-1, 4, 5);//控制重绘区域
break;
case KeyEvent.VK_LEFT:
you.x--;
pnlMain.repaint(you.x, you.y, 5, 4);//控制重绘区域
break;
case KeyEvent.VK_RIGHT:
you.x++;
pnlMain.repaint(you.x-1, you.y, 5, 4);//控制重绘区域
break;
}
}
});
}
class MyPanel extends JPanel {
public MyPanel(){
}
@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.GREEN);
for (Point point : points) {
g.fillRect(point.x, point.y, 4, 4);
}
g.setColor(Color.RED);
g.fillRect(you.x, you.y, 4, 4);
}
}
public static void main(String[] args) {
MovePoint frame = new MovePoint();
frame.setVisible(true);
}
}
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MovePoint extends JFrame{
Point[] points = new Point[10];
Point you;
MyPanel pnlMain;
Timer timer;
TimerTask task;
public MovePoint(){
initialize();
}
private void initialize() {
you = new Point(150,150);//可控点
for (int i=0;i<points.length;i++) {
points[i] = new Point(i*10, i*10);//模拟你的随机点
}
this.setSize(300,300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pnlMain = new MyPanel();
timer = new Timer();
task = new TimerTask() {
public void run() {
for (Point point : points) {
point.x++;
point.y++;
if (point.x>300) {
point.x = 0;
}
if (point.y>300) {
point.y = 0;
}
repaint();
}
}
};
timer.schedule(task, 0, 100);
this.getContentPane().add(pnlMain);
addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e) {//事件监听
int code=e.getKeyCode();
switch (code) {
case KeyEvent.VK_UP:
you.y--;
repaint();
break;
case KeyEvent.VK_DOWN:
you.y++;
repaint();
break;
case KeyEvent.VK_LEFT:
you.x--;
repaint();
break;
case KeyEvent.VK_RIGHT:
you.x++;
repaint();
break;
}
}
});
}
class MyPanel extends JPanel {
public MyPanel(){
}
@Override
public void paint(Graphics g) {
g.setColor(Color.GREEN);
for (Point point : points) {
g.fillRect(point.x, point.y, 4, 4);
}
g.setColor(Color.RED);
g.fillRect(you.x, you.y, 4, 4);
}
}
public static void main(String[] args) {
MovePoint frame = new MovePoint();
frame.setVisible(true);
}
}