FileDocCategorySizeDatePackage
ImageView.javaAPI DocExample1862Mon Sep 15 11:31:46 BST 2003None

ImageView

public class ImageView extends JComponent
Standalone Image Viewer - works with any AWT-supported format.

Fields Summary
protected Image
im
The Image object
protected int
width
Size of the image
protected int
height
protected Container
cp
The graphical component
protected String
fileName
The name of the image file
Constructors Summary
public ImageView(String fileName)
Construct an ImageView viewer, given a filename.

		this.fileName = fileName;
		cp = this;

	
Methods Summary
public voidloadImage()


		URL url = getClass().getResource(fileName);
		im = Toolkit.getDefaultToolkit().getImage(url);

		// ----- This part omitted from course notes for brevity -----
		// Use a MediaTracker to show the "best"? way of waiting
		// for an image to load, and how to check for errors.
		MediaTracker mt = new MediaTracker(this);
		mt.addImage(im, 0);
		try {
			mt.waitForID(0);
		} catch(InterruptedException e) {
			System.err.println("Unexpected interrupt in waitForID!");
			return;
		}
		if (mt.isErrorID(0)) {
			System.err.println("Couldn't load image file " + fileName);
			return;
		}

		// Now that we know the image has been loaded,
		// it is safe to take its width and height.
		// ----- End of part omitted from course notes for brevity -----
		width = im.getWidth(this);
		height = im.getHeight(this);
		setSize(width, height);
	
public static voidmain(java.lang.String[] arg)

		if (arg.length == 0) {
			System.err.println("Usage: ImageView file [...]");
		} else {
			for (int i=0; i<arg.length; i++) {
				JFrame jf = new JFrame("ImageView: " + arg[i]);
				ImageView iv = new ImageView(arg[i]);
				jf.getContentPane().add(iv);
				iv.loadImage();
				jf.setSize(iv.getSize());
				jf.setVisible(true);
			}
		}
	
public voidpaint(java.awt.Graphics g)

		g.drawImage(im, 0, 0, this);