//  这是我初步坦克的编程,为什么我按上下左右键,坦克不能移动?
package it;import java.awt.Color;import javax.swing.JFrame;public class Game {
public Game(){
initJframe();
}

public void initJframe(){
JFrame frame=new JFrame();
TankJpanel tankJpanel=new TankJpanel();
tankJpanel.setBounds(0, 0, TankJpanel.WIDTH_TANKPANEL, TankJpanel.HEIGHT_TANKPANEL);
tankJpanel.setBackground(Color.GREEN);
frame.setLayout(null);
frame.add(tankJpanel);
frame.setBounds(100, 100, 800, 600);
    frame.setBackground(Color.BLACK);        
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.setResizable(true);
    }
public static void main(String[] args) {
new Game();
}
}
package it;import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;import javax.swing.JPanel;public class TankJpanel extends JPanel{

private static final long serialVersionUID = -1449702864935143850L;
int x=100;
    int y=50; public static final int WIDTH_TANKPANEL=640;
public static final int HEIGHT_TANKPANEL=480;    Image offScreenImage=null;
public TankJpanel(){
initTankJpanel();
}    
public void paint(Graphics g) {
super.paint(g);
Color c=g.getColor();
g.setColor(Color.RED);
g.fillOval(x,y,30,30);
g.setColor(c);


public void update(Graphics g) { super.update(g);
if(offScreenImage==null){
offScreenImage=this.createImage(WIDTH_TANKPANEL, HEIGHT_TANKPANEL);
}
Graphics gOffScreenImage=offScreenImage.getGraphics();
paint(gOffScreenImage);
g.drawImage(offScreenImage,0,0,null);
} public void initTankJpanel() {
TankStart();
addMonitorAdapter();
}

public void TankStart(){
new Thread(new TankMoveDriver()).start();
}
private class TankMoveDriver implements Runnable{
public void run() {
while(true){
repaint();

try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

public void addMonitorAdapter(){
this.addKeyListener(new KeyMonitor());
}
    private class KeyMonitor extends KeyAdapter{ public void keyPressed(KeyEvent e) {

// super.keyReleased(e);
int key=e.getKeyCode();
switch(key){
case KeyEvent.VK_LEFT:
x-=5;
break;
case KeyEvent.VK_RIGHT:
x+=5;
break;
case KeyEvent.VK_UP:
y-=5;
break;
case KeyEvent.VK_DOWN:
y+=5;
break;
}

    }    
}