Java:drawImage找不到我的BuffereImage
我已正确设置了BuffereImage,但编译器给我的错误是找不到变量img强>
代码如下:
URL url = this.getClass().getResource("spooky.gif");
BufferedImage img = ImageIO.read(url);
mt.addImage(img,1);
public void paint(Graphics g)
{
g.drawImage(img,0,0,300,300,this);
}
这里是Stackoverflow告诉我,我需要添加更多的细节
整个代码如下所示:
import java.util.*;
import java.awt.*;
import java.applet.*;
import java.net.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class Spooky extends Applet
{
Image scary, trumpet, walking;
URL url = this.getClass().getResource("spooky.gif");
MediaTracker mt;
AudioClip spoopy;
Graphics buffer;
Image offscreen;
Dimension dim;
public void init()
{
setLayout(null);
mt = new MediaTracker(this);
url = getDocumentBase();
BufferedImage img = ImageIO.read(url);
scary = getImage(url,"scary.gif");
trumpet = getImage(url,"trumpet.gif");
walking = getImage(url,"walking.gif");
mt.addImage(img,1);
mt.addImage(scary,1);
mt.addImage(trumpet,1);
mt.addImage(walking,1);
try{
mt.waitForAll();
}
catch(InterruptedException e){}
spoopy = getAudioClip(getDocumentBase(),"spoopy.wav");
spoopy.loop();
}
public void paint(Graphics g)
{
g.drawImage(img,0,0,300,300,this);
}
}
# 1 楼答案
您正在调用其作用域之外的变量。 无法访问该变量,因为在paint函数中使用该变量时,您在init函数中声明并初始化了该变量。 尝试以下方法:
# 2 楼答案
以下是我的解决方案: