Transcript Images
Images
26-Jul-16
Drawing images
Java can display .gif, .jpg (or .jpeg), and .png images
These are the only kinds it can display
Displaying them is (relatively) easy:
Get the Graphics of the panel you want to display them in
Call this method of your Graphics object:
boolean drawImage(Image img, int x, int y,
ImageObserver observer)
where:
img is the image
x, y are the coordinates of the upper left-hand corner
observer – the enclosing JFrame works well for this argument
Example:
myPanel.getGraphics().drawImage(myImage, 0, 0, this);
Why an ImageObserver?
boolean drawImage(Image img, int x, int y,
ImageObserver observer)
This method “Draws as much of the specified image as
is currently available.”
It returns true if the entire image is available
It notifies the ImageObserver if more has become available
In general, it would be nice if the images were loaded
before attempting to display them
In particular, attempting to display a null image is an error
Loading images
This is ridiculously difficult. Here goes...
Get a Toolkit that can load the image
Get a MediaTracker that can watch images being loaded
tracker.addImage(image, 0);
A MediaTracker can track any number of images at once
Tell the MediaTracker to start loading the images (bet you thought
getImage did this!) and wait for them to finish loading
Image image = toolkit.getImage(fileName);
Tell the MediaTracker to track the image
MediaTracker tracker = new MediaTracker(owner);
A JFrame makes a perfectly good owner
Tell the toolkit that you want to load the image
Toolkit toolkit = Toolkit.getDefaultToolkit();
tracker.waitForAll();
Finally, handle the Exceptions that might occur
The End