Está en la página 1de 38

Applets

Applets

Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Cmo se carga un Applet?

Capacidades de los Applets

Pueden hacer conexiones de red hacia el host del que vinieron. Los applets pueden invocar mtodos pblicos de otros applets que se encuentren en la misma pgina web. Permiten agregar animaciones y sonido a una pgina web.

Que no puede hacer un Applet que es cargado a travs de la red?

No puede leer o escribir ficheros en el host en el que se est ejecutando. No puede hacer conexiones de red, excepto con el host desde el que vino. No puede arrancar ningn programa en el host donde se est ejecutando. Los applets que se cargan desde el sistema local de ficheros no tienen ninguna de las restricciones que tienen los applets cargados a travs de la red.

Declaracin

Todos los applets son subclases de la clase Applet, la cual se encuentra en el paquete:

java.applet

public class suApplet extends java.applet.Applet { //cdigo del Applet. } import java.applet.*; public class suApplet extends Applet { //cdigo del Applet. }

Mtodos de los Applets


init start paint stop destroy

Ciclo de vida de un Applet

El navegador interpreta la pgina HTML donde se encuentra insertado el applet. Cuando encuentra la etiqueta <APPLET> el navegador descarga del mismo servidor donde se encontraba la pgina HTML el bytecode de la clase indicada en la etiqueta <APPLET>. Se crea una instancia de la clase que controla el applet. El applet se inicializa (ejecucin del mtodo init()). El applet comienza a ejecutarse (ejecucin del mtodo start()). El applet se visualiza en pantalla (ejecucin del mtodo paint()).

Ciclo de vida de un Applet

Cuando se abandona la pgina, por ejemplo, para visitar un enlace, el applet detiene la ejecucin, se ejecuta el mtodo stop. Cuando se regresa a la pgina que contiene el applet, se ejecuta el mtodo start del applet y se reanuda su ejecucin. Finalmente, cuando se cierra la ventana del navegador, se termina la ejecucin del applet, y se liberan todos los recursos ocupados por el applet antes de salir del navegador. Durante todo el tiempo de vida del applet, ste continuar recibiendo llamadas de mtodos por parte del navegador que le irn informando de los distintos eventos que se vayan produciendo (por ejemplo, maximizar y minimizar el navegador, refresco de la pantalla, abandono de la pgina HTML, etc).

Mtodo init

Este mtodo es llamado una sola vez, cuando el applet es cargado en el browser. En este mtodo realiza la inicializacin de un applet. Tambin dentro de este mtodo: Se inicializan las variables del applet. Se crean los objetos que el applet necesita. Se cargan imgenes, sonidos o fonts.

Mtodo init

El mtodo init es heredado de la superclase Applet y se redefine (method overriding) si es necesario. Este mtodo se debe utilizar para realizar las acciones iniciales del applet: inicializar variables, distribuir los compontentes grficos del applet, etc. En general, el mtodo init() debera contener el cdigo que se pondra normalmente en un constructor. La sintaxis del mtodo init es: public void init( ) { //cdigo }

Mtodo start

El mtodo start es llamado: Luego de que se termina de ejecutar el mtodo init. Cuando un usuario vuelve a visitar la pgina HTML donde est el applet, tras haberla abandonado momentneamente. Cuando se minimiza la ventana del navegador y se ejecuta otra tarea, y se vuelve a ejecutar el applet maximizando la ventana del navegador.

Este mtodo puede ser invocado algunas veces durante su ciclo de vida de un applet.
La sintxis del mtodo start es: public void start ( ) { //cdigo }

Mtodo paint

Se refiere a como un applet muestra algunas cosas sobre la pantalla, tal como texto, lneas, color de fondo o una imagen. El mtodo paint puede ser invocado varias veces durante el ciclo de vida de un applet. Por ejemplo, cuando la ventana de la pgina web ha sido tapada por otra ventana, o porque se ha restaurado su tamao. La sintaxis del mtodo paint es la siguiente: public void paint (Graphics g) { //cdigo } Usted debera incluir la sentencia: import java.awt.Graphics;

Mtodo paint

Tambin es llamado, cada vez que un applet necesita ser pintado nuevamente. Las acciones que se realizan en este mtodo tienen que ver con el dibujo del objeto grfico g que es automticamente pasado como parmetro. Este mtodo es heredado de la clase java.awt.Container.

Mtodo stop

Detiene la ejecucin de un applet. Es llamado, cuando una pgina web contiene este applet ha sido reemplazada por otra pgina y tambin justo antes del mtodo destroy. La sintxis de este mtodo es la siguiente.
public void stop ( ) { //cdigo

Mtodo destroy

Este mtodo es llamado cuando el Applet est siendo removido de memoria. Este mtodo realiza las tareas que son necesarias para liberar todos los recursos que est usando el applet. La mayora de los applets no necesitan sobrescribir el mtodo destroy(), porque su mtodo stop() (al que se llama antes) hace todo lo necesario para detener la ejecucin del applet. Sin embargo, el mtodo destroy() esta disponible para los applets que necesitan liberar recursos adicionales asignados. La sintaxis de este mtodo es la siguiente: public void destroy ( ) { //cdigo }

Otros mtodos: update

Esta es la funcin que realmente se llama cuando se necesita una actualizacin de la pantalla (en lugar de llamar directamente a la funcin paint()). La clase Applet simplemente limpia el rea y llama al mtodo paint(). Las clases derivadas pueden sustituir esta funcionalidad para sus propsitos. La sintxis de este mtodo es la siguiente:

public void update (Graphics g) { //cdigo }

Otros mtodos: repaint


A esta funcin se la debera llamar cuando el applet necesite ser repintado. Llamando a este mtodo se podr forzar la actualizacin del applet. Este es el mtodo que habitualmente invocan los programadores de applets para refrescar el contenido del applet en pantalla. Al llamar al mtodo repaint(), internamente se llama a update() que borrar el rectngulo sobre el que se redibujar y luego a su vez llamar a paint(). La sintxis de este mtodo es la siguiente: public void repaint ( ) { //cdigo }

Etiqueta APPLET

APPLET [CODEBASE = codebaseURL] CODE = appletFile WIDTH = pixels HEIGHT = pixels <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> </APPLET>

Creando su primer Applet


import java.applet.*; import java.awt.*; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello world!", 50, 25); } } Guardar este cdigo en un archivo con nombre HelloWorld.java

Pgina HTML que llamar al Applet.


<HTML> <HEAD> <TITLE>Un Programa Simple</TITLE> </HEAD> <BODY> Este es el output de mi programa: <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> </APPLET> </BODY> </HTML> Guardar este cdigo en un archivo con nombre HelloWorld.html

Compilar el archivo fuente HelloWorld.java: javac HelloWorld.java Ejecutar el siguiente comando: appletviewer HelloWorld.html Se obtiene el siguiente resultado:

Pasndo parmetros a Applets


<APPLET CODE=QueenMab.class WIDTH=100 HEIGHT=100> <PARAM NAME=nombreparametro VALUE=valordelparametro> <PARAM NAME=size VALUE=24> </APPLET>

Pasando parmetros a Applets


Los parmetros son pasados a su applet cuando este es cargado. Dentro del mtodo init () recupere estos parmetros usando getParameter(). Ejmp:

String theFontName = getParameter (font);

Si el parmetro que usted espera no ha sido especificado en el archivo HTML, getParameter retorna nulo. Ver: EjemploParametro.java y EjemploParametroPage.html.

Como invocar un Applet empaquetado en un archivo JAR


<applet code=NombreClaseAppletPrincipal.class archive =NombredelJar.jar width=ancho height=alto> </applet> Ejemplo: <applet code=Animator.class archive="classes.jar" width=460 height=160> <param name=foo value="bar"> </applet>

La Clase Color

Sistema RGB (Red Green Blue) Cada componente es representado con un entero de 0 a 255. Para setear los colores:
g.setColor(Color.pink); Color brush = new Color (255,204,102); g.setColor (brush);

Algunos colores

black (0,0,0) white (255,255,255) blue (0,0,255) yellow (255,255,0) magenta (255,0,255)

La clase Font
Font f = new Font(Dialog, Font.BOLD + Font.ITALIC,24); public void paint (Graphics screen) { Font f= new Font(TimesRoman, Font.PLAIN,72); screen.setFont(f); screen.drawString(HOLA,10,100); } Ver DemoFont.java y DemoFont.html

clase FontMetrics

clase FontMetrics

public int getAscent() public int getDescent() public int getLeading() public int getHeight() public int stringWidth(String str)

La clase Graphics

Es parte del paquete java.awt Le permite dibujar texto, lneas, valos, crculos, rectngulos y otros polgonos. Todos los mtodos que permiten dibujar sern llamados desde el mtodo paint( ). La forma como los distintos sistemas operativos generan los grficos es diferente, la clase Graphics, provee la interfase para permitirnos hacer programas que generen grficos independientes de la plataforma.

Sistema de coordenadas
0,0
+x

(x,y)

+y

Lneas
drawLine(x1,//coordenada x del primer punto. y1, //coordenada y del primer punto. x2, //coordena x del segundo punto. y2); //coordenada y del segundo punto.

Ver: Line.html y Line.java

Rectngulos
drawRect(x, //coordenada x de la esquina superior izquierda y, //coordenada y de la esquina superior izquierda ancho, alto); fillRect(x,y,ancho,alto); drawRoundRect (x, y, ancho, alto,anchoarco,altoarco); fillRoundRect(x, y, ancho, alto,anchoarco,altoarco);
(x,y)

Ovalos

drawOval (x,y,ancho,alto); Ver DrawOval.java, DrawOval.html

(x,y)

Arcos

drawArc(x,y,ancho,alto,ngulo inicial,ngulo del arco) Ver DrawArcs.java, DrawArcs.html

Polgonos
drawPolygon (xPoints[], //coordenadas x yPoints[], //coordenadas y points ) //nmero de puntos. fillPolygon(xPoints[], //coordenadas x yPoints[], //coordenadas y points ) //nmero de puntos.
Ver DrawPoly.html y DrawPoly.java

Dibujando Strings y Characters

public abstract void drawString ( String string, //El string a ser dibujado int x, //La coordenada x int y); //La coordenada y public void drawChars ( char chars [], //arreglo de caracteres a dibujar int offset, //indice desde donde se va a dibujar int number, // nmero de elementos a dibujar int x, //La coordenada x int y ); //La coordenada y

Ver: DrawSC.java

También podría gustarte