Drawing an Image
Problem
You want to display an image, a preformatted bitmap, or raster file.
Solution
Use the Graphics
drawImage( )
method in your paint routine. Image
objects represent bitmaps. They are normally loaded from a file via
getImage( )
, but can also be synthesized using
createImage( )
. You can’t construct them
yourself, however: the Image
class is abstract.
Once you have an image, displaying it is trivial:
// File graphics/DrawImageDemo.java public void paint(Graphics g) { g.drawImage(0, 0, myImage, this); }
Discussion
You can get an image by using a routine named, naturally,
getImage( )
. If
your code will be used only in an applet, you can use the
Applet
method getImage( )
, but
if you want it to run in an application as well, you need to use the
Toolkit version. This form takes either a filename or a URL. The
filename, of course, when it turns up in an applet, will fail with a
security exception unless the user installs a policy file. Program
GetImage
shows the code for doing this
both ways:
/* * For Applet, invoke as: <APPLET CODE="GetImage" WIDTH="100" HEIGHT="100"> </APPLET> * For Application, just run it (has own main). */ import java.awt.*; import java.net.*; // for URL class /** This program, which can be an Applet or an Application, * shows a form of Toolkit.getImage( ) which works the same * in either Applet or Application! */ public class GetImage extends java.applet.Applet { Image image; public void init( ) { loadImage( ); } public void loadImage( ) { ...
Get Java Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.