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 的构造函数中读取图像,这样它只被读取一次,而不是每次重新绘制组件时都被读取。
您还需要查看绘制图像位置的坐标。也许面板没有那么大?
您是否通过显示图像大小来验证图像是否被正确读取?
所以在这段代码中,一个 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 的构造函数中读取图像,这样它只被读取一次,而不是每次重新绘制组件时都被读取。
您还需要查看绘制图像位置的坐标。也许面板没有那么大?
您是否通过显示图像大小来验证图像是否被正确读取?