If you know the exact URL for the image you wish to load, you can load it like this:
URL imageURL = new URL("http://www.prenhall.com/logo.gif");
Image img = getImage(imageURL);
You can compress this into one line as follows
Image img = getImage(new URL("http://www.prenhall.com/logo.gif"));
The getImage()
method is provided by
java.applet.Applet
so this works inside applets. Outside of
applets you can use the getImage method from the default toolkit
instead, like this:
URL imageURL = new URL("http://www.prenhall.com/logo.gif");
Image img = Toolkit.getDefaultToolkit().getImage(imageURL);
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 = getImage(getCodeBase(), "test.gif");
The getCodeBase()
method returns a URL 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 = getImage(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. 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.