home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 November / Chip_1998-11_cd.bin / tema / Cafe / main.bin / vpojava.DLL / SOURCE / IMAGEVIEW < prev    next >
Text File  |  1998-03-18  |  2KB  |  93 lines

  1.  
  2. import java.awt.Canvas;
  3. import java.awt.Dimension;
  4. import java.awt.Graphics;
  5. import java.awt.Image;
  6. import java.awt.Toolkit;
  7. import java.net.URL;
  8. import java.net.MalformedURLException;
  9. import java.awt.MediaTracker;
  10. import java.awt.Component;
  11.  
  12. public class ImageViewer
  13.     extends Canvas
  14. {
  15.     private Image image;
  16.     private String fileName;
  17.  
  18.     public ImageViewer()
  19.         throws MalformedURLException
  20.     {
  21.         fileName = null;
  22.     }
  23.  
  24.     public ImageViewer(String str)
  25.         throws MalformedURLException
  26.     {
  27.         setFileName(str);
  28.     }
  29.  
  30.     public ImageViewer(URL url)
  31.     {
  32.         setURL(url);
  33.     }
  34.  
  35.     public ImageViewer(Image img)
  36.     {
  37.         setImage(img);
  38.     }
  39.  
  40.     public void setFileName(String str)
  41.         throws MalformedURLException
  42.     {
  43.         fileName = str;
  44.         setURL(new URL(fileName));
  45.     }
  46.  
  47.     public String getFileName()
  48.     {
  49.         return (fileName);
  50.     }
  51.  
  52.     public void setURL(URL url)
  53.     {
  54.         fileName = null;
  55.         setImage(getToolkit().getImage(url));
  56.     }
  57.  
  58.     public void setImage(Image img)
  59.     {
  60.         fileName = null;
  61.         image = img;
  62.         waitForImage(this, image);
  63.     }
  64.  
  65.     public void paint(Graphics g)
  66.     {
  67.         g.drawImage(image, 0, 0, this);
  68.     }
  69.  
  70.     public Dimension preferredSize()
  71.     {
  72.         if (image != null)
  73.             return (new Dimension(image.getWidth(this), image.getHeight(this)));
  74.         return super.preferredSize();
  75.     }
  76.  
  77.     public static void waitForImage(Component c, Image i)
  78.     {
  79.         MediaTracker tracker;
  80.  
  81.         try
  82.         {
  83.             tracker = new MediaTracker(c);
  84.             tracker.addImage(i, 0);
  85.             tracker.waitForID(0);
  86.         }
  87.         catch(InterruptedException e)
  88.         {
  89.         }
  90.     }
  91.  
  92. }
  93.