FileDocCategorySizeDatePackage
TrackImage.javaAPI DocExample992Wed Mar 26 02:38:46 GMT 1997None

TrackImage.java

import java.awt.*;

public class TrackImage extends java.applet.Applet implements Runnable { 
	Image img;
	final int MAIN_IMAGE = 0;
	MediaTracker tracker;
	boolean show = false;
	Thread runme;
	String message = "Loading...";

	public void init() {
		img = getImage( getClass().getResource(getParameter("img")) );
		tracker = new MediaTracker(this);
		tracker.addImage( img, MAIN_IMAGE );
	}

	public void start() {
		if ( !tracker.checkID( MAIN_IMAGE ) ) {
			runme = new Thread( this );
			runme.start();
		}
	}

	public void stop() {
		runme.stop();
		runme = null;
	}

	public void run() {
		repaint();
		try {
			tracker.waitForID( MAIN_IMAGE );
		} catch( InterruptedException e) { }

		if ( tracker.isErrorID( MAIN_IMAGE ) )
			message= "Error";
		else
			show = true;
		repaint();
	}

	public void paint( Graphics g ) {
		if ( show )
			g.drawImage( img, 0, 0, this );
		else {
			g.drawRect( 0, 0, getSize().width-1, getSize().height-1);
			g.drawString( message, 20, 20 );
		}
	}
}