Prev
Next

Overengineering

How to load an image in Java:
 1 import java.awt.*;
 2 import java.awt.event.*;
 3 import java.awt.image.*;
 4 
 5 class ImageLoader extends Canvas {
 6 
 7     //you wish this could be static
 8     Image loadImage(String name) {
 9 	ImageProducer ip;
10 	try {
11 	    ip = (ImageProducer) getClass().getResource("Icons/"+name+".gif").getContent();
12 	} catch (Exception e) {
13 	    return null;
14 	}
15 	Image im = createImage(ip);
16 	//media trackers somehow use a GUI Component
17 	MediaTracker mt = new MediaTracker (this);
18 	mt.addImage(im, 0);
19 	boolean tryagain = false;
20 	try {	  
21 	    mt.waitForID (0);
22 	} catch (InterruptedException ex) {
23 	    //don't think I've ever actually gotten here
24 	    tryagain = true;
25 	}
26 	if (mt.isErrorID (0) || tryagain) {
27 	    //maybe it will work better next time?
28 	    return loadImage (name);
29 	}
30 	return im;
31     }
32 }


Prev
Next