20.4 加载图片

图像在Java中是用Image来描述的。我们可以使用开发包里面的createImage()方法来创建图像,但是我们需要意识到该方法加载图像时不是同步的——换句话说,方法返回的与图像加载是在不同的线程中。这样会产生这样一个问题就是在图像为完全加载完成时,我们就使用了该图像。

我们可以使用MediaTracker类来检查图像加载的进度。但万一在某个地方我们需要在使用方法之前,必须确保图片完全加载完毕。这时该怎么办呢?使用Swing的ImageIcon类可以解决我们这个问题,代码如下:

ImageIcon icon = new ImageIcon("/home/dgilbert/temp/daylight.png");
Image image = icon.getImage();

构造方法直到图片完全加载完成后才返回,因此在我们调用方法getImage()时,下图已经图像加载完毕。