Package com.utils

Source Code of com.utils.Icono

/*
* Icono.java
*
* Created on 13 de junio de 2002, 13:42
*/

package com.utils;

/**
*
* @author  amolinero
* @version
*/
import com.GestDB.general.Trackbug;
import java.awt.*;
import java.awt.MediaTracker;
import java.awt.image.ImageObserver;
import java.io.*;
import java.net.URL;

public class Icono extends java.awt.Component implements javax.swing.Icon, Serializable
{

    protected transient Image image;
    protected transient int loadStatus;
    protected ImageObserver imageObserver;
    protected URL imageLocation;
    protected MediaTracker tracker;
    protected int width;
    protected int height;

    public Icono()
    {
        width = -1;
        height = -1;
        tracker = new MediaTracker(this);
    }

    public Icono(URL url)
    {
        width = -1;
        height = -1;
        tracker = new MediaTracker(this);
        imageLocation = url;
        image = Toolkit.getDefaultToolkit().getImage(url);
        loadImage(image);
    }

    public Icono(Image image1)
    {
        width = -1;
        height = -1;
        tracker = new MediaTracker(this);
        image = image1;
        loadImage(image);
    }

    public Icono(InputStream inputstream)
        throws IOException
    {
        width = -1;
        height = -1;
        tracker = new MediaTracker(this);
        byte abyte0[] = new byte[1024];
        ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream();
        int i;
        while((i = inputstream.read(abyte0)) > 0)
            bytearrayoutputstream.write(abyte0, 0, i);
        inputstream.close();
        bytearrayoutputstream.flush();
        image = Toolkit.getDefaultToolkit().createImage(bytearrayoutputstream.toByteArray());
        loadImage(image);
        bytearrayoutputstream.close();
    }

    public URL getImageLocation()
    {
        return imageLocation;
    }

    public void setImageLocation(URL url)
    {
        imageLocation = url;
        image = Toolkit.getDefaultToolkit().getImage(url);
        loadImage(image);
    }

    public void setImageObserver(ImageObserver imageobserver)
    {
        imageObserver = imageobserver;
    }

    public ImageObserver getImageObserver()
    {
        return imageObserver;
    }

    public int getIconWidth()
    {
        return width;
    }

    public int getIconHeight()
    {
        return height;
    }

    protected void loadImage(Image image1)
    {
        synchronized(tracker)
        {
            tracker.addImage(image1, 0);
            try
            {
                tracker.waitForID(0, 5000L);
            }
            catch(InterruptedException _ex)
            {
                Trackbug.error(_ex, _ex.getMessage() + "Interumpido mientras se cargaba la imagen");
            }
            loadStatus = tracker.statusID(0, false);
            tracker.removeImage(image1, 0);
            width = image1.getWidth(imageObserver);
            height = image1.getHeight(imageObserver);
        }
    }

    public int getImageLoadStatus()
    {
        return loadStatus;
    }

    public Image getImage()
    {
        return image;
    }

    public void paintIcon(java.awt.Component component, java.awt.Graphics graphics, int param, int param3) {
        if(image != null)
        {
            if(imageObserver == null)
            {
                graphics.drawImage(image, param, param3, null);
                return;
            }
            graphics.drawImage(image, param, param3, imageObserver);
        }
    }
   
}
TOP

Related Classes of com.utils.Icono

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.