Java Graphics2D图像移动

时间:2017-04-27 17:54:39

标签: java swing graphics graphics2d

所以在这段代码中,一个40x40的方块可以通过调用方向方法在窗口中移动,而我正试图让一个太空船出现而不是方形。无论我尝试什么,它都无法正常工作。

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,但是这并没有像我希望的那样真正有效。这就是注释掉的代码。

1 个答案:

答案 0 :(得分:2)

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

首先绘制图像。

super.paintComponent(g);

然后调用上面的代码,用于打印面板的背景颜色,从而覆盖图像。上述陈述应该是绘画方法的第一个陈述。

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

绘画方法仅适用于绘画。不要在方法中执行I / O.应该在类的构造函数中读取图像,以便只读取一次,而不是每次重新绘制组件时。

您还需要查看绘制图像的位置的坐标。可能面板不是那么大?

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