在构造函数中:
public MyCanvas() //extends Canvas
{
image [0] = Toolkit.getDefaultToolkit().getImage("image0.jpg");
MediaTracker mt = new MediaTracker(this);
mt.addImage(image[0], 0);
try
{
mt.waitForAll();
}
catch(InterruptedException e)
{
System.out.println(e);
}
System.out.println(image[0]);
System.out.println(image[0].getWidth(this) + "\n" + image[0].getHeight(this));
}
public void paint(Graphics g)
{
dflag = g2d.drawImage(image[0], 0, 0, this);
System.out.println(dflag);
}sun.awt.image.ToolkitImage@1ac04e8 //这里不是表示图片加载成功了吗???
-1 //得不到图片的宽和高
-1
false //drawImage返回false且画不出图片, 怎么回事?
false
false
false
……
Toolkit.getDefaultToolkit().getImage("image0.jpg"); //这个语句你将图片名称改为,图片的绝对路径试试,如:C:/image0.jpg。这里没有获取的图片但是返回Image对象的原因是:getImage("image0.jpg")其实是找不到图片的,但是仍然反回Image对象,是因为,Image接口定义中包含有这层含义,Image不仅包括图象信息,还包括加载图象所使用的资源信息,像Image.flush(),可在对象创建后,且原图文件被修改后重新加载当前的Image对象。所以,此时返回的Image没有图片信息,但是有创建图片的资源信息,如指定的路径"image0.jpg"。所以,Image对象一样被创建,以便日后重新加载。
改成绝对路径也不得啊!!!sun.awt.image.ToolkitImage@765291
-1
-1
false
false
false
false
false
false
……