为什么用Graphics画图片的时候第一次会失败,但以后就不会失败了?

历史五千年 2012-12-10 05:35:08
image1=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/bomb_1.jpg"));
image2=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/bomb_2.png"));

class MyPanel extends JPanel
{
public void paint(Graphics g)
{
super.paint(g);

g.drawImage(image1, bomb.x, bomb.y, 70, 70, this);
g.drawImage(image2, bomb.x, bomb.y, 70, 70, this);
}
}

在MyPanel类的某个地方,会定时的调用repait();
但是第一次图片显示不出来,以后就可以了,
为什么?
...全文
179 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gloomyfish 2012-12-11
  • 打赏
  • 举报
回复
引用 2 楼 huntor 的回复:
Toolkit的getImage需要MediaTracker配合使用,需要等待图片装载完成。
靠谱点的答案是他!其实无论什么时候装载image都应该使用MediaTracker来实现 延时加载
张某码 2012-12-10
  • 打赏
  • 举报
回复
还有repaint()方法是自动调用吗?我用到好像都是要自己调用
张某码 2012-12-10
  • 打赏
  • 举报
回复
应该是不会出现这种情况的,或者是说你在同一个地方画了两次?然后只显示后一次的?
huntor 2012-12-10
  • 打赏
  • 举报
回复
下载一般使用ImageIO的read读入图片了。
huntor 2012-12-10
  • 打赏
  • 举报
回复
Toolkit的getImage需要MediaTracker配合使用,需要等待图片装载完成。
我百了个度 2012-12-10
  • 打赏
  • 举报
回复
这与Java的重绘机制有关,我也不知道,你如果要第一次就画的话,在窗口显示的时候就调用一次repait方法就是了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧