当前位置:编程学习 > JAVA >>

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

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();
但是第一次图片显示不出来,以后就可以了,
为什么? --------------------编程问答-------------------- 这与Java的重绘机制有关,我也不知道,你如果要第一次就画的话,在窗口显示的时候就调用一次repait方法就是了 --------------------编程问答-------------------- Toolkit的getImage需要MediaTracker配合使用,需要等待图片装载完成。 --------------------编程问答-------------------- 下载一般使用ImageIO的read读入图片了。 --------------------编程问答-------------------- 应该是不会出现这种情况的,或者是说你在同一个地方画了两次?然后只显示后一次的? --------------------编程问答-------------------- 还有repaint()方法是自动调用吗?我用到好像都是要自己调用 --------------------编程问答--------------------
引用 2 楼 huntor 的回复:
Toolkit的getImage需要MediaTracker配合使用,需要等待图片装载完成。

靠谱点的答案是他!其实无论什么时候装载image都应该使用MediaTracker来实现
延时加载
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,