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

39
Applets

Transcript of Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Page 1: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Applets

Page 2: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Applets

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

Page 3: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

¿Cómo se carga un Applet?

Page 4: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Capacidades de los Applets

• Pueden hacer conexiones de red hacia el host del que vinieron.

• Los applets pueden invocar métodos públicos de otros applets que se encuentren en la misma página web.

• Permiten agregar animaciones y sonido a una página web.

Page 5: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

¿Que no puede hacer un Applet que es cargado a través 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 ningún 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 través de la red.

Page 6: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Declaración

• 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 {

//código del Applet. }• import java.applet.*; public class suApplet extends Applet { //código del Applet. }

Page 7: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Métodos de los Applets

• init

• start

• paint

• stop

• destroy

Page 8: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Ciclo de vida de un Applet

• El navegador interpreta la página HTML donde se encuentra insertado el applet. Cuando encuentra la etiqueta <APPLET> el navegador descarga del mismo servidor donde se encontraba la página 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 (ejecución del método init()).• El applet comienza a ejecutarse (ejecución del método

start()).• El applet se visualiza en pantalla (ejecución del método

paint()).

Page 9: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Ciclo de vida de un Applet

• Cuando se abandona la página, por ejemplo, para visitar un enlace, el applet detiene la ejecución, se ejecuta el método stop. Cuando se regresa a la página que contiene el applet, se ejecuta el método start del applet y se reanuda su ejecución.

• Finalmente, cuando se cierra la ventana del navegador, se termina la ejecución 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 métodos por parte del navegador que le irán informando de los distintos eventos que se vayan produciendo (por ejemplo, maximizar y minimizar el navegador, refresco de la pantalla, abandono de la página HTML, etc).

Page 10: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Método init

• Este método es llamado una sola vez, cuando el applet es cargado en el browser.

• En este método realiza la inicialización de un applet.

• También dentro de este método:– Se inicializan las variables del applet.– Se crean los objetos que el applet necesita.– Se cargan imágenes, sonidos o fonts.

Page 11: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Método init

• El método init es heredado de la superclase Applet y se redefine (method overriding) si es necesario.

• Este método se debe utilizar para realizar las acciones iniciales del applet: inicializar variables, distribuir los compontentes gráficos del applet, etc.

• En general, el método init() debería contener el código que se pondría normalmente en un constructor.

• La sintaxis del método init es:– public void init( )

{ //código }

Page 12: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Método start

• El método start es llamado:– Luego de que se termina de ejecutar el método init.– Cuando un usuario vuelve a visitar la página HTML

donde está el applet, tras haberla abandonado momentáneamente.

– 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 método puede ser invocado algunas veces durante su ciclo de vida de un applet.

• La sintáxis del método start es:– public void start ( ) { //código }

Page 13: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Método paint

• Se refiere a como un applet muestra algunas cosas sobre la pantalla, tal como texto, líneas, color de fondo o una imagen.

• El método paint puede ser invocado varias veces durante el ciclo de vida de un applet. Por ejemplo, cuando la ventana de la página web ha sido tapada por otra ventana, o porque se ha restaurado su tamaño.

• La sintaxis del método paint es la siguiente:– public void paint (Graphics g) {

//código }• Usted debería incluir la sentencia:

– import java.awt.Graphics;

Page 14: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Método paint

• También es llamado, cada vez que un applet necesita ser pintado nuevamente.

• Las acciones que se realizan en este método tienen que ver con el dibujo del objeto gráfico g que es automáticamente pasado como parámetro.

• Este método es heredado de la clase java.awt.Container.

Page 15: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Método stop

• Detiene la ejecución de un applet.• Es llamado, cuando una página web contiene

este applet ha sido reemplazada por otra página y también justo antes del método destroy.

• La sintáxis de este método es la siguiente.– public void stop ( ) { //código }

Page 16: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Método destroy • Este método es llamado cuando el Applet está

siendo removido de memoria.• Este método realiza las tareas que son necesarias

para liberar todos los recursos que esté usando el applet.

• La mayoría de los applets no necesitan sobrescribir el método destroy(), porque su método stop() (al que se llama antes) hace todo lo necesario para detener la ejecución del applet. Sin embargo, el método destroy() esta disponible para los applets que necesitan liberar recursos adicionales asignados.

• La sintaxis de este método es la siguiente:– public void destroy ( ) { //código }

Page 17: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Otros métodos: update

• Esta es la función que realmente se llama cuando se necesita una actualización de la pantalla (en lugar de llamar directamente a la función paint()).

• La clase Applet simplemente limpia el área y llama al método paint().

• Las clases derivadas pueden sustituir esta funcionalidad para sus propósitos.

• La sintáxis de este método es la siguiente:public void update (Graphics g) { //código}

Page 18: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Otros métodos: repaint

• A esta función se la debería llamar cuando el applet necesite ser repintado.

• Llamando a este método se podrá forzar la actualización del applet.

• Este es el método que habitualmente invocan los programadores de applets para refrescar el contenido del applet en pantalla.

• Al llamar al método repaint(), internamente se llama a update() que borrará el rectángulo sobre el que se redibujará y luego a su vez llamará a paint().

• La sintáxis de este método es la siguiente:public void repaint ( ) { //código}

Page 19: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Etiqueta APPLET

• APPLET [CODEBASE = codebaseURL]

CODE = appletFile WIDTH = pixels HEIGHT = pixels

• <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> </APPLET>

Page 20: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

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 código en un archivo con

nombre HelloWorld.java

Page 21: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Página 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 código en un archivo con

nombre HelloWorld.html

Page 22: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

• Compilar el archivo fuente HelloWorld.java: javac HelloWorld.java

• Ejecutar el siguiente comando: appletviewer HelloWorld.html

• Se obtiene el siguiente resultado:

Page 23: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Pasándo parámetros a Applets

<APPLET CODE=“QueenMab.class” WIDTH=100 HEIGHT=100>

<PARAM NAME=nombreparametro VALUE=“valordelparametro”>

<PARAM NAME=size VALUE=“24”>

</APPLET>

Page 24: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Pasando parámetros a Applets

• Los parámetros son pasados a su applet cuando este es cargado.

• Dentro del método init () recupere estos parámetros usando getParameter(). Ejmp:– String theFontName = getParameter (“font”);

• Si el parámetro que usted espera no ha sido especificado en el archivo HTML, getParameter retorna nulo.

• Ver: EjemploParametro.java y EjemploParametroPage.html.

Page 25: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

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>

Page 26: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

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);

Page 27: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Algunos colores

• black (0,0,0)

• white (255,255,255)

• blue (0,0,255)

• yellow (255,255,0)

• magenta (255,0,255)

Page 28: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

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

Page 29: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

clase FontMetrics

Page 30: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

clase FontMetrics

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

Page 31: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

La clase Graphics

• Es parte del paquete java.awt• Le permite dibujar texto, líneas, óvalos,

círculos, rectángulos y otros polígonos.• Todos los métodos que permiten dibujar

serán llamados desde el método paint( ).• La forma como los distintos sistemas

operativos generan los gráficos es diferente, la clase Graphics, provee la interfase para permitirnos hacer programas que generen gráficos independientes de la plataforma.

Page 32: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Sistema de coordenadas

0,0 +x

+y

(x,y)

Page 33: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Líneas

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

Page 34: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Rectángulos

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)

Page 35: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Ovalos

• drawOval (x,y,ancho,alto);

• Ver DrawOval.java, DrawOval.html

(x,y)

Page 36: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Arcos

• drawArc(x,y,ancho,alto,ángulo inicial,ángulo del arco)

• Ver DrawArcs.java, DrawArcs.html

Page 37: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Polígonos

drawPolygon (xPoints[], //coordenadas x

yPoints[], //coordenadas y

points ) //número de puntos.

fillPolygon(xPoints[], //coordenadas x

yPoints[], //coordenadas y

points ) //número de puntos.

Ver DrawPoly.html y DrawPoly.java

Page 38: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte 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, // número de elementos a dibujar int x, //La coordenada x int y ); //La coordenada y

Ver: DrawSC.java

Page 39: Applets. Son aplicaciones que deben ejecutarse bajo un browser que soporte Java.

Ejercicio en clase

• Hacer un applet, que muestre 10 rectángulos (Ver figura de ejemplo), el primer rectángulo tendrá un color azul oscuro y el último rectángulo, tendrá un color azul más claro.