Java Graphics2D 图像移动

Java Graphics2D Image Moving

所以在这段代码中,一个 40x40 的正方形可以通过调用定向方法在 window 上移动,我试图让一艘宇宙飞船出现而不是正方形。无论我怎么尝试,它就是行不通。

public void paintComponent (Graphics g) {

        ImageIcon wallpaper = new ImageIcon("images/JGalagawallpaper.png");
        image = wallpaper.getImage();
        g.drawImage(image, 400, 400, null);

        ImageIcon ship = new ImageIcon("images/galaga.png");
        galaga = ship.getImage();


        super.paintComponent(g);
        Graphics2D graphic = (Graphics2D) g;
        graphic.fill(new Rectangle.Double(x, y, 40, 40));
        //graphic.drawImage(galaga, x, y, 40, 40);
    }

我的问题是,如何让那个东西出现?我已经尝试修改 graphic.drawImage,但结果并不像我希望的那样好。这就是注释掉的代码。

g.drawImage(image, 400, 400, null);

首先画出图像。

super.paintComponent(g);

然后你调用上面的代码来打印面板的背景颜色,从而覆盖图像。上面的语句应该是画法的第一个语句

ImageIcon wallpaper = new ImageIcon("images/JGalagawallpaper.png");

一种绘画方法,仅供绘画使用。不要在方法中执行 I/O 。应该在 class 的构造函数中读取图像,这样它只被读取一次,而不是每次重新绘制组件时都被读取。

您还需要查看绘制图像位置的坐标。也许面板没有那么大?

您是否通过显示图像大小来验证图像是否被正确读取?