答案 0 :(得分:3)
由于之前的所有答案都没有提到java.awt.Image
实际上是一个无法实例化的抽象类,所以我不得不干涉!
这是创建图像的最佳方式。
BufferedImage img = null;
try {
img = ImageIO.read(new File("strawberry.jpg"));
} catch (IOException e) {
}
哦,是的,更不用说gun1
方法中没有定义drawGun(Graphics2D g)
对象......
答案 1 :(得分:0)
使用扩展Image的类,如BufferedImage。这与基本的OOP有关。
答案 2 :(得分:0)
要加载Image
,您可以使用java.awt.Toolkit.getImage(...)或(通常是更好的选项)javax.imageio.ImageIO' read
方法
答案 3 :(得分:0)
您正尝试从其中实例化一个局部变量方法。 你需要在构造函数之前放置“gun1”,然后在构造函数中使用“gun1 = gun.getImage()”。
答案 4 :(得分:0)
您需要将gun1作为参数传递给drawGun方法,或将gun1声明为成员变量。
Image是一个抽象类,它不能被实例化。您可以在此处阅读有关抽象类的更多信息https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
要获取Image的实例,您可以使用一个可以为您处理的类,例如ImageIO或类似的东西
ImageIcon image = new ImageIcon((Thread.currentThread().getContextClassLoader().getResource(url)));
使用ImageIcon的奖励可以让你绘制GIF动画。