Applets Java


En esta página:


Ciclo de vida de un applet

Como hemos visto, un applet se ejecuta en una página web y ese entorno en el que está va a determinar el ciclo de vida del mismo. La clase Applet dispone de varios métodos sin código dentro a los que llama en diversas fases de su ciclo de vida (al crearse el applet, al redibujarse, al destruirse...). Si deseamos que nuestro applet haga cosas especiales en esos momentos deberemos sobreescribir esos métodos. Son éstos:

void init()
Este método se llama al crearse el applet y sólo se ejecuta esa vez. Se suele utilizar para inicializar variables globales.
void start()
Se llama cuando hay que activar el applet. Esto sucede cuando el applet se ve en la pantalla. Se suele utilizar para comenzar las actividades de applet, ya que en general éste debe estar visible en la pantalla para poder realizar su función.
void stop()
Es el inverso del anterior. Es llamado cuando el applet deja de estar visible. Se suele utilizar para interrumpir las actividades activadas en start().
void destroy()
Método llamado al destruirse el applet. Normalmente no se suele sobreescribir, ya que la destrucción del applet conlleva la destrucción de todo lo que se ha creado en él. Puede ser útil para mostrar una ventana de confirmación que pregunte al usuario si de verdad debe cargárselo.
void repaint()
Este método no debería ser sobrecargado y es llamado cuando se necesita redibujar el applet. Podemos llamarlo nosotros desde nuestro código. Llama a update(Graphics).
void update(Graphics)
Llamado por repaint() cuando se necesita actualizar el applet. Su implementación borra el rectángulo y llama a paint() para volver a pintarlo.
void paint(Graphics)
Método en el que se dibuja el applet y el cual deberemos sobreescribir para poder dibujar lo que nosotros deseemos..
void print(Graphics)
Equivalente a paint() pero es llamado cuando se va a imprimir el contenido del applet.

El siguiente ejemplo conviene observarlo desde un navegador e ir viendo los distintos mensajes que nos muestra el applet, para comprender cuando son llamados los métodos:

CicloDeVida.java
/**
 * Applet CicloDeVida
 *
 * <APPLET CODE="CicloDeVida.class" WIDTH="100" HEIGHT="400"></APPLET>
 */

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

public class CicloDeVida extends Applet {
  String mensajes;
  public void init() {
    mensajes = "Inicializando. ";
  }
  public void start() {
    escribirMensaje("Método start. ");
  }
  public void stop() {
    escribirMensaje("Método stop. ");
  }
  public void destroy() {
    escribirMensaje("Destruyendo Applet. ");
  }
  void escribirMensaje(String nuevoMensaje) {
    mensajes += nuevoMensaje;
    repaint();
  }
  public void paint(Graphics g) {
    g.drawString(mensajes, 5, 15);
  }
}