Tema 8.

Applets
¿Qué es un applet?
Características

Métodos de un applet Inclusión de un applet en una página HTML Ejemplo Threads en applets
1

Los applets tienen importantes restricciones de seguridad Sólo pueden leer y escribir ficheros en el servidor del que provienen 2 .class) se descargan desde el servidor hasta el navegador en cuya JVM se ejecutan El applet se ejecuta en la ventana del navegador (en un Panel).¿Qué es un applet? Aplicación que se ejecuta en un navegador al cargar una página HTML Los ficheros de Java compilados (*.

y la capacidad de añadir componentes de interface de usuario los hereda de Container y de Panel Suele redefinir el método gráfico paint() 3 .Características de un applet Jerarquía de clases: java.awt.Object java.applet.lang.applet. destroy() Hereda los métodos gráficos de Component.awt.Panel ← java. start().Applet No tiene un main() con el que comienza la ejecución Debe redefinir métodos heredados de Applet que controlan su ejecución: init().Container← java.awt.Component java.Applet Todos los applets derivan de java. stop().

Métodos de ejecución Los métodos que controlan la ejecución de los applets son llamados por el navegador Método init() Se llama cuando el navegador carga el applet Se ocupa de las tareas de inicialización Método start() Se llama cuando el applet se hace visible después de haber sido inicializado. con la finalidad de que libere recursos 4 . o tras haber estado oculto Se utiliza para crear threads para determinadas tareas Método stop() Se llama al ocultar el applet Se utiliza para detener threads Método destroy() Se llama cuando el applet va a ser destruido.

Métodos gráficos Un applet es una aplicación gráfica que aparece en una zona de la ventana del navegador Debe redefinir el método gráfico paint(): public void paint(Graphics g) Todo el trabajo gráfico se debe incluir en este método Es llamado al mostrar el applet por 1ª vez y cada vez que hay que redibujarlo Para volver a dibujar el applet se utiliza el método repaint() Este método llama a update(). que borra todo y luego llama a paint() 5 .

.Inclusión de un applet en una página HTML Para incluir un applet en una página HTML se utiliza la etiqueta: <APPLET... 6 .class WIDTH=pixeles HEIGHT=pixeles [ALT = “texto alternativo”]> [<PARAM NAME=“Parametro1” VALUE=“valor1”] [<PARAM NAME=“Parametro2” VALUE=“valor2”] </APPLET> El valor de los parámetros se obtiene con el método de la clase Applet: String getParameter(String name).</APPLET> Forma general: <APPLET CODE = Clase..>.

getSize(). import java.*. g. g.height).drawString(texto.10.fillRect(0. colorFondo = new Color(255.0. private Color colorTexto.getSize().width.BOLD. fuente = new Font("Courier new".setColor(colorFondo). g. 14).20). public void init() { texto = getParameter("texto"). private Font fuente.255. public class EjemploApplet1 extends Applet { private String texto. private Color colorFondo.applet.255).setColor(colorTexto).0.setFont(fuente). colorTexto = new Color(0. } 7 } . Font.*.0).awt.Ejemplo (i) import java. g. } public void paint(Graphics g) { g.

html: <APPLET code = EjemploApplet1.Ejemplo (ii) EjemploApplet1.html navegador 8 .class WIDTH=400 HEIGHT=200> <PARAM NAME="texto" VALUE="Primer ejemplo de Applet"> </APPLET> Visualización: appletviewer EjemploApplet1.

currentThread(). public void init(){} public void start() { if(hilo==null){ // crea el hilo hilo=new Thread(this).applet.awt. } public void paint(Graphics g){ } } 9 . import java. // lanza el hilo } } public void run() { Thread hiloActual=Thread.Threads en applets import java.*. hilo. while(hilo==hiloActual){ // tarea repetitiva } } public void stop() { hilo=null.start(). public class AppletThread extends Applet implements Runnable { private Thread hilo = null.*.