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 }