package uk.org.squirm3.swing; import java.awt.Component; import java.awt.Image; import java.awt.MediaTracker; import java.awt.Toolkit; import java.net.URL; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; public class GraphicsFactory { private final Component component = new JFrame(); public Image createImage(final String imagePath) throws InterruptedException { final URL url = GraphicsFactory.class.getResource(imagePath); final Image image = Toolkit.getDefaultToolkit().createImage(url); // XXX Not the most efficient but sufficient for now final MediaTracker tracker = new MediaTracker(component); tracker.addImage(image, 0); tracker.waitForID(0); return image; } public Icon createIcon(final String imagePath) throws InterruptedException { return new ImageIcon(createImage(imagePath)); } }