我应该为Graphics.drawImage()函数的ImageObserver参数使用null吗?

时间:2012-05-11 16:43:19

标签: java image graphics awt drawimage

我有以下变量:Image avatar;URL url;

在构造函数中,我设置了:

this.url = new URL("http://www.robottiger.com/user.PNG");

this.avatar = ImageIO.read(url);

然后在..

public void paint (Graphics g)

..使用以下内容是否正确?

g.drawImage(avatar, 20, 410, null);

或者null应该是this吗?

4 个答案:

答案 0 :(得分:3)

第四个参数是观察者,当更多图像被转换时要通知的对象。它完全可以为null,假设只有在异步获取Image参数时它才真正有用。

答案 1 :(得分:2)

您在drawImage()中引用的构造函数如下:

public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer)

第四个参数只是图像观察者,它是object to be notified as more of the image is converted.所以它可以为空。

答案 2 :(得分:2)

与其他两个回复相比,我建议如果您有ImageObserver使用,并且不会假设图像是否同步加载(例如{{3异步加载(例如ImageIO.read(URL))或在内存中生成。

答案 3 :(得分:0)

如果您在网络上加载Image(不是从文件系统加载,或由程序构建)并且没有明确等待加载,则需要使用ImageObserver来确保完全画一个Image。除此之外 - 只需使用null。应该没问题。