1 36 37 40 41 42 package java2d; 43 44 import java.awt.*; 45 import java.awt.image.*; 46 import java.util.Map ; 47 import java.util.concurrent.ConcurrentHashMap ; 48 import java.net.URL ; 49 import java.net.URLClassLoader ; 50 51 52 56 public class DemoImages extends Component { 57 58 private static String [] names = 59 { 60 "java-logo.gif", "bld.jpg", "boat.png", "box.gif", 61 "boxwave.gif", "clouds.jpg", "duke.gif", "duke.running.gif", 62 "dukeplug.gif", "fight.gif", "globe.gif", "java_logo.png", 63 "jumptojavastrip.png", "magnify.gif", "painting.gif", 64 "remove.gif", "snooze.gif", "star7.gif", "surfing.gif", 65 "thumbsup.gif", "tip.gif", "duke.png", "print.gif", 66 "loop.gif", "looping.gif", "start.gif", "start2.gif", 67 "stop.gif", "stop2.gif", "clone.gif" 68 }; 69 70 private static Map <String ,Image> cache = 71 new ConcurrentHashMap <String ,Image>(names.length); 72 73 public DemoImages() { 74 for (String name : names) { 75 cache.put(name, getImage(name, this)); 76 } 77 } 78 79 80 85 public static Image getImage(String name, Component cmp) { 86 Image img = null; 87 if (cache != null) { 88 if ((img = cache.get(name)) != null) { 89 return img; 90 } 91 } 92 93 URLClassLoader urlLoader = 94 (URLClassLoader )cmp.getClass().getClassLoader(); 95 URL fileLoc = urlLoader.findResource("images/" + name); 96 img = cmp.getToolkit().createImage(fileLoc); 97 98 MediaTracker tracker = new MediaTracker(cmp); 99 tracker.addImage(img, 0); 100 try { 101 tracker.waitForID(0); 102 if (tracker.isErrorAny()) { 103 System.out.println("Error loading image " + name); 104 } 105 } catch (Exception ex) { ex.printStackTrace(); } 106 return img; 107 } 108 } 109 | Popular Tags |