当drawImage这个方法中的图片没有被完全加载的时候,
这个方法会返回false。
drawImage方法是在调用的时候才加载所需要的图片,所以第一次调用的时候,图片没有被完全加载,造成显示的不正常,甚至不显示图片,此后,图片由于方法调用被加载,以后再以这幅图片为参数的时候,就可以正常显示了。
解决方案:使用MediaTracker类
Image img = Toolkit.getDefaultToolkit().getImage(imgPath);
MediaTracker t = new MediaTracker(this);
t.addImage(img, 0);
t.waitForAll();
将这段代码在drawImage()之前调用,MediaTracker可以确保你的图片在DRAW前被加载以备使用。通过addImage方法加入一个Image并符上一个ID号,waitForAll()等待加入的所有图片被加载完毕。
这个方法会返回false。
drawImage方法是在调用的时候才加载所需要的图片,所以第一次调用的时候,图片没有被完全加载,造成显示的不正常,甚至不显示图片,此后,图片由于方法调用被加载,以后再以这幅图片为参数的时候,就可以正常显示了。
解决方案:使用MediaTracker类
Image img = Toolkit.getDefaultToolkit().getImage(imgPath);
MediaTracker t = new MediaTracker(this);
t.addImage(img, 0);
t.waitForAll();
将这段代码在drawImage()之前调用,MediaTracker可以确保你的图片在DRAW前被加载以备使用。通过addImage方法加入一个Image并符上一个ID号,waitForAll()等待加入的所有图片被加载完毕。
解决方案 »
- Hadoop到底是干什么用的?网上的理论太抽象。
- java中的TimerTask用法
- 大家看看多线程同步的问题(我的for循环有100次,但没有执行100次就死锁或结束)
- 请教hashCode的本质
- 我想给工程加载sun.net这个包,加载不了,怎么回事?
- java.io.StreamCorruptedException: invalid stream header
- 谁能给我一个对象池的代码
- 在每个 Class 中都有 public main() 的情况下如何让 JCreator 执行正确的 main()
- 在线等待,高分求救
- 名词解释。一个类的成员变量,和这个类的对象有什么关系?
- 我如何才能学习好JAVA????
- 关于SetResizable(false);
此后此图片就再也不会出现返回false而不能正常显示了呢?
那么是在调用的时候加载图片,如果这个图片在本地,那么加载好图片的速度相当的快。再次调用drawImage方法的时候就能正常显示了
那么为了确保显示正常,
由于我的Applet中的都是小小的图片,
我是不是也可以在初始化时对每个图片显示一下,
直到每个图片显示都返回true,
这样之后就不会再出现不正常的显示了?我想这样每个图片一开始都显示一遍,刚好还可以做程序的开始动画呢。
不过MediaTracker是最好的方案