我有以下变量: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
吗?
答案 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。应该没问题。