¿Qué es un applet?








Una clase de Java que puede ser

- Incluida en una página de HTML y bajada y ejecutada por un Web browser.
 
 













Pasos de Ejecucion de un Applet
 

1. El navegador carga el URL
2. El navegador carga el documento de HTML
3. El navegador carga las clases de applet
4. El navegador corre el applet
 
 
 
 
 
 


RESTRICCIONES DE SEGURIDAD DEL APPLET

Muchos navegadores previenen lo siguente
- Ejecución de otro programa apartir del applet.
- Escritura de archivos I / O (input/output)
- Llamada a cualquier método nativo.
- Intentos de abrir un socket a cualquier sistema excepto del que se haya obtenido el applet.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


Jerarquia de Herencia del applet






La clase java.applet.Applet es realmente una subclase de java.awt.Panel. La jerarquía de las clases applet y AWT están de la siguente manera:
 

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Panel
                    |
                    +--java.applet.Applet
 

 
 



















METODOS CLAVE DEL APPLET






- init ( )
- start ( )
- stop ( )
- destroy ( )
- paint ( )
 
 













DESPLIEGUE DE APPLETS









- Los applets son gráficos por naturaleza.
-  el método paint ( ) es llamado en el ambiente del navegador
 
 






















ESCRIBIENDO UN APPLET
El método paint ( ) y los objetos gráficos

import java.awt.*;
import java.applet.*;
public class HelloWorld extends Applet {
        public void paint (Graphics g) {
                g.drawString ("Hello World!", 25,25) ;
        }
}
 

ejecucion.
 
 













METODOS DEL APPLET Y CICLO DE VIDA DEL APPLET









- init ( )
- Llamada cuando el applet es creado.
- Puede ser utilizado para inicializar los valores de los datos.
- start ( )
- Llamada cuando el applet se vuelve visible.
- stop ( )
- Llamada cuando el applet se vuelve invisible.
 
 
 
 
 
 
 
 
 
 
 
 
 


Pintando con el AWT






- paint (Graphics g)
- repaint ( )
- update (Graphics g)
 
 











¿Qué es el appletviewer?

Una aplicación de java que:
- Te permite correr applets sin utilizar un navegador del Web.
- Cargar el documento HTML provisto como un argumento
appletviewer HelloWorld.html
- Se necesita por lo menos el siguiente código HTML
<applet>
<applet code=HelloWorld class width=100 height=100>
</applet>
 
 
 
 
 
 
 
 
 
 
 
 
 
 


La sintaxis de la etiqueta del applet

La sintaxis completa para la etiqueta del applet es:
<applet
[ archive=archiveList]
code=appletFile.class
width=pixels height=pixels
[ codebase=codebaseURL]
[ alt=alternateText]
[ name=appletInstance Name]
[ align=alignment]
[vspace=pixels][hspace=pixels]
>
[ <param name=appletAttribute1 value=value>]
[ <param name=appletAttribute2 value=value>]
. . .
[ alternateHTML]
</applet>
 
 










Facilidades adicionales del applet




- getDocumentBase( ) - Regresa un objeto  URL que describe el directorio de la página actual del
navegador.
- getCodeBase ( ) - Regresa un objeto URL  que describe el directorio fuente de la clase del applet.
- getImage (URL base, String target) y
getAudioClip (URL base, String target) - utiliza el objeto URL como un punto de partida para obtener un sonido o una imagen.
 
 
 
 
 
 
 
 
 
 
 


UNA PRUEBA SIMPLE DE IMAGEN

//Applet que muestra una imagen de Snoopy saludando
import java.awt.*;
import java.applet.Applet;

public class SnoopyApplet extends Applet {
Image snoopy;

    public void init ( ) {
        snoopy = getImage(getDocumentBase ( ), "snoopy.gif");
    }
    public void paint (Graphics g) {
        g.drawImage (snoopy, 25, 25, this);
    }
}

Prueba
 
 
 
 
 
 
 
 
 


UNA PRUEBA DE AUDIO SIMPLE

//Applet que toca un sonido una vez

import java.awt.Graphics;
import java.applet.Applet;

public class HwAudio extends Applet {
    public void paint (Graphics g)
    {
        g.drawString ("Audio Test", 25, 25);
        play (getCodeBase ( ), "cuckoo.au");
    }
}
 

prueba
 
 
 


CICLANDO UN AUDIOCLIP





- Cargar un Audioclip
- Tocar un Audioclip
- Parar un Audioclip
 
 









UNA PRUEBA SIMPLE DE CICLADO DE AUDIO

//Applet que muestra un sonido que se repite constantemente
import java.awt.Graphics;
import java.applet.*;

public class HwLoop extends Applet {
AudioClip sound;

    public void init ( ) {
        sound = getAudioClip(getCodeBase ( ), "cuckoo.au");
    }

    public void paint (Graphics g) {
        g.drawString("Audio Test", 25, 25) ;
    }

    public void start ( ) {
        sound.loop ( ) ;
    }

    public void stop ( ) {
        sound.stop ( ) ;
    }
}
 

Prueba
 
 





TIPOS DE EVENTOS DEL MOUSE

- mouseClicked - El botón del mouse ha sido presionado y soltado.
- mouseEntered - El cursor del mouse entra en un componente.
- mouseExited - El cursor del mouse deja el componente.
- mousePressed - El botón del mouse ha sido presionado.
- mouseReleased - El botón del mouse ha sido soltado.
 
 
 
 
 
 
 
 
 
 
 
 
 
 


UNA PRUEBA SIMPLE DEL MOUSE

//Este applet observa los eventos del mouse
import java.awt.Graphics;
import java.awt.event.*;
import java.applet.Applet;
public class Ratoncito extends Applet implements MouseListener {
    private int mouseX = 25;
    private int mouseY = 25;

    //Registrar esta instancia de applet para capturar eventos de
    //MouseLister
    public void init ( ) {
        addMouseListener (this) ;
    }

    public void paint (Graphics g) {
        g.drawString ("Hello World!", mouseX, mouseY) ;
    }

    //Procesa el evento MousePressed MouseListener
    public void mousePressed (MouseEvent evt) {
        mouseX = evt.getX ( ) ;
        mouseY = evt.getY ( ) ;
        repaint ( ) ;
    }

    //No estamos usando los otros eventos del mouse.
    public void mouseClicked (MouseEvent e) { }
    public void mouseEntered (MouseEvent e) { }
    public void mouseExited (MouseEvent e) { }
    public void mouseReleased (MouseEvent e) { }
}
 

Prueba
 
 







LECTURA DE PARAMETROS




En un documento de HTML, una etiqueta <param> en el contexto de la etiqueta <applet> puede pasar información de
configuración al applet. Por ejemplo:
 

<html>
<applet code=DrawAny.class width=200>
<param name=image value="snoopy.gif">
</applet>
</html>
 

Dentro del applet, se puede utilizar el método getParameter ( ) para leer estos valores.

import java.awt.*;
import java.applet.*;
public class DrawAny extends Applet {
    Image im;

    public void init ( ) {
        String imageName = getParameter ("image") ;

        if ( imageName == null ) {
            System.out.println("Error: Cannot find image") ;
            System.exit (0) ;
        }
        im = getImage (getDocumentBase ( ), imageName) ;
    }

    public void paint (Graphics g) {
        g.drawImage (im, 0, 0, this) ;
    }
}
 
 

prueba.... (cambiar el nombre del gif)
 
 
 
 


DOBLE PROPOSITO DE CODIGO

Es posible crear un codigo de software Java que pueda ser usado como un applet de java y como una
aplicación de java desde una clase de archivo simple. Esto es un Applet/Aplicación

// Applet/aplicación la cual muestra una imagen de snoopy durmiendo
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class AppletApp extends Applet {
    Date date;

    public void init ( ) {
        date = new Date ( ) ;
    }

    public void paint (Graphics g) {
        g.drawString ("This Java program started at", 25, 25) ;
        g.drawString (date.toString ( ), 25, 60) ;
    }

    //Una aplicación requerirá un main ( )
    public static void main (String args [ ]) {
        //Crear un Frame donde poner el applet
        Frame frame = new Frame ("Application") ;
        // Crear una instancia de la clase (applet)
        AppletApp app = new AppletApp ( ) ;
        //Añadirlo al centro del frame
        frame.add(app, BorderLayout.CENTER) ;
        frame.setSize (250,150) ;
        //Registrar la clase AppletApp como el que escucha el
        //evento de destrucción de la ventana
        frame.addWindowListener (new WindowAdapter( ) {
            public void windowClosing (WindowEvent e) {
                System.exit (O) ;
            }
        } );
       // Llamar los métodos del applet
        app.init ( );
        app.start ( );
        frame.setVisible(true) ; // Invoca paint ( )
    }
}
 

Prueba

NOTA: Las aplicaciones no están provistas de recursos por un navegador..