package docen_archivos;

import java.awt.*;
import java.applet.Applet;
import java.net.URL;
import java.net.MalformedURLException;
import java.io.IOException;

/****************************************************************************
 * Applet que carga y muestra una archivo gráfico
 ****************************************************************************/
public class applet_imagen extends Applet {
   Image imagen;

   /************** Inicializar el applet *********************/
   public void init() {
       try { jbInit(); }
       catch (Exception e) { e.printStackTrace(); }
   }

   /****************** Inicialización de componentes **********/
   private void jbInit() throws Exception {
      imagen = cargar_imagen("imagenes/buho.gif");
      repaint();  // Para asegurar que se ve bien desde el inicio la imagen
   }

   /*** Pinto la imagen centrada ***/
   public void paint(Graphics g) {
       Rectangle rec = g.getClipBounds();
       int ancho_imagen = imagen.getWidth( this );
       int alto_imagen = imagen.getHeight( this );
       g.drawImage( imagen, rec.width/2 - ancho_imagen/2, rec.height/2 - alto_imagen/2, this );
   }

   /******* Carga y devuelve la imagen **************/
   Image cargar_imagen( String archivo ) {
       try {
	   URL url = new URL( getCodeBase().toString()+archivo );
	   return getImage( url );
//	   return Toolkit.getDefaultToolkit().getImage(url); // Otra forma de hacerlo
       }
       catch (MalformedURLException mue) {
	   System.out.print("URL inadecuada. cargar_imagen. ");
	   System.out.println(mue.getMessage() );
	   return null;
       }
       catch (IOException ioe) {
	   System.out.print( "IOEXception. cargar_imagen. ");
	   System.out.println(ioe.getMessage());
	   return null;
       }
       catch (SecurityException ace) {
	   System.out.print("Security Exception. cargar_imagen. ");
	   System.out.println(ace.getMessage() );
	   return null;
       }
       catch (Exception e) {
	   System.out.print( "Excepción general. cargar_imagen. ");
	   System.out.println(e.getMessage() );
	   e.printStackTrace();
	   return null;
       }
   }   //////////////////// FIN DE cargar_imagen //////////////////////
}
