import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class TankClient extends Frame{ int x = 50;
int y = 50;
public static final int GAME_WIDTH = 800;
public static final int GAME_HEIGHT = 600;
public static final int XSPEED = 5;
public static final int YSPEED = 5;

Image offScreen = null;

public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.GREEN);
g.fillOval(x, y, 30, 30);
g.setColor(c);

}    public void update(Graphics g) {
     if(offScreen == null){
     offScreen = this.createImage(GAME_WIDTH, GAME_HEIGHT);
     }
     Graphics goffScreen = offScreen.getGraphics();
     Color c = goffScreen.getColor();
     goffScreen.setColor(Color.BLACK);
     goffScreen.fillRect(0, 0, GAME_WIDTH, GAME_HEIGHT);
     g.setColor(c);
     paint(goffScreen);
     g.drawImage(offScreen, 0, 0, null);
    }

public static void main(String[] args) {
TankClient tc = new TankClient();
tc.launch();
}

public void launch() {
setTitle("Tank War!");
setSize(GAME_WIDTH, GAME_HEIGHT);
setLocation(300,150);
setBackground(Color.BLACK);
setResizable(false);
addKeyListener(new MyKey());
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
    });
new Thread(new RPaint()).start();
setVisible(true);
}

private class RPaint implements Runnable { public void run() {
while(true) {
repaint();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

private class MyKey extends KeyAdapter {

public void keyPressd(KeyEvent e) {
int key = e.getKeyCode();
switch(key) {
case KeyEvent.VK_UP :
y -= 5;
break;
case KeyEvent.VK_DOWN :
y += 5;
break;
case KeyEvent.VK_LEFT :
x -= 5;
break;
case KeyEvent.VK_RIGHT :
x += 5;
break;
}
}
}
}用键盘控制移动不了,请各位大侠看下怎么回事~谢过了!