Java Graphics2D 图像移动

标签 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,但是效果并没有达到我的预期。这就是注释掉的代码。

最佳答案

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

首先绘制图像。

super.paintComponent(g);

然后调用上面的代码,该代码用于指定面板的背景颜色,从而覆盖图像。上面的语句应该是绘画方法的第一条语句。

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

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

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

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

关于Java Graphics2D 图像移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43664805/

相关文章:

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

java - Maven 与 npm 类似吗?

java - 获取所有租户中的人员

java - JButton 和 ActionListener 在 java.awt、安全性和事件中产生多个异常?

java - 如何根据JFrame大小设置JScrollPane的大小?

java - 图像旋转代码有什么问题?

c# - 保存位图并使用 graphics.copyFromScreen parallel-y 时出现 InvalidOperationException

java - 在不实现所有方法的情况下扩展 Graphics2D 类

Java游戏引擎,编写自己的脚本语言?

java - 更改启用 JTextField 的背景颜色