If you don't know the exact URL of the image, but you do know its
name and that it's in the same directory as the applet, you can use
an alternate form of getImage()
that takes a URL and a
filename. Use the applet's getCodeBase()
method to
return the URL to the applet directory like this:
Image img = this.getImage(this.getCodeBase(), "test.gif");
The getCodeBase()
method returns a URL
object that points to the directory where the applet came from.
Finally if the image file is stored in the same directory as the
HTML file, use the same getImage()
method but pass it
getDocumentBase()
instead. This returns a URL that
points at the directory which contains the HTML page in which the
applet is embedded.
Image img = this.getImage(this.getDocumentBase(), "test.gif");
If an image is loaded from the Internet, it may take some time for it to be fully downloaded. Most of the time you don't need to worry about this. You can draw the Image as soon as you've connected it to a URL using one of the above methods. Java will update it as more data becomes available without any further intervention on your part.
Load all the images your applet needs in the init()
method. In particular you do not want to load them in the paint()
method. If you do they will be reloaded every time
your applet repaints itself, and applet performance will be
abysmal.