package com.knutejohnson.demos; import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.io.*; import java.net.*; import javax.swing.*; public class MediaTrackerExample extends JPanel { private Image image; public MediaTrackerExample(String fname) { try { image = getToolkit().createImage(fname); MediaTracker mt = new MediaTracker(this); mt.addImage(image,0); mt.waitForID(0); setPreferredSize(new Dimension( image.getWidth(this),image.getHeight(this))); } catch (Exception e) { e.printStackTrace(); } } public MediaTrackerExample(URL url) { try { image = getToolkit().createImage(url); MediaTracker mt = new MediaTracker(this); mt.addImage(image,0); mt.waitForID(0); setPreferredSize(new Dimension( image.getWidth(this),image.getHeight(this))); } catch (Exception e) { e.printStackTrace(); } } public void paint(Graphics g) { // image observer not required g.drawImage(image,0,0,null); } public static void main(final String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { JFrame f = new JFrame("MediaTrackerExample"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); MediaTrackerExample mte = new MediaTrackerExample(args[0]); f.getContentPane().add(mte,BorderLayout.CENTER); f.pack(); f.setVisible(true); } }); } }