为什么我的飞机没有出现移动呢?
package com.bjxt.plane;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MyPlaneGame extends Frame {
    public static final  int GAME_WIDTH=500;
    public static final  int GAME_HEIGHT=500;
    Image plane=GameUtil.getImage("images/plane.png");
    Image bg=GameUtil.getImage("images/bg.jpg");
    int count =0;
    int planex=100;
    @Override
    public void paint(Graphics g) {
        
        System.out.println("绘制窗口:"+count);
        count++;
        g.drawImage(plane,planex,100,22,33,null);
        g.drawImage(bg,0,0,500,500,null);
        planex+=1;
    }
    public void launchFrame(){
        this.setTitle("飞机大战.第一阶段");
        setVisible(true);
        setSize(Constant.GAME_WIDTH,Constant.GAME_HEIGHT);
        setLocation(300,300);
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        new PaintThread().start();
    }
    class PaintThread extends Thread{
        @Override
        public void run() {
            while(true){
                repaint();
                try {
                    Thread.sleep(50);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    private Image offScreenImage = null;
    public void update(Graphics g){
        if(offScreenImage==null){
            offScreenImage=this.createImage(Constant.GAME_WIDTH,Constant.GAME_HEIGHT);
            Graphics goff=offScreenImage.getGraphics();
            paint(goff);
            g.drawImage(offScreenImage,0,0,null);
        }
    }
    public static void main(String[] args) {
        MyPlaneGame planegame=new MyPlaneGame();
        planegame.launchFrame();
    }
}