因此,在这个代码块中,一个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。该图像应在您的课堂的构造函数中读取,以便仅读取一次,而不是每次重新启动组件时。
您还需要查看绘制图像的位置的坐标。也许面板不那么大?
您是否通过显示大小正确验证了图像是否正确读取?