## Sumario: Applets

Esta lección ofrece mucha información --casi todo lo que se necesita saber para escribir applets Java. Esta página sumariza todo lo que se ha aprendido, añadiendo un poco más de información para ayudarte a entender el cuadro completo.

Lo primero que se aprendió para escribir un applet es que se debe crear una subclase de la clase java.applet. En esta subclase, se debe implementar al menos uno de los siguientes métodos: init(), start(), y paint(). Los métodos init() y start(), junto con stop() y destroy(), son los llamados eventos más importantes (milestones) que ocurren en el ciclo de vida de un applet. Se llama al método paint() cuando el applet necesita dibujarse en la pantalla.

La clase Applet desciende de la clase AWT Panel, que desciende a su vez de la clase AWT Container, que desciende a su vez de la clase AWT Component. De la clase Component, un applet hereda las capacidades de dibujar y manejar eventos. De la clase Container, un applet hereda la capacidad de añadir otros componentes y de tener un manejador de distribución para controlar su tamaño y posición. De la clase Panel, un applet hereda mucho, incluyendo la capacidad de responder a los principales eventos en el ciclo de vida, como son la carga y la descarga.

Los applets se incluyen en páginas HTML utilizando la etiqueta <APPLET>. Cuando un usuario visita una página que contiene un applet, aquí tienes lo que sucede:

1. El navegador encuentra el fichero .class que contiene la subclase Applet. La posición del fichero .class (que contiene los bytecodes Java) se especifica con los atributos CODE y CODEBASE de la etiqueta <APPLET>.
2. El navegador trae los bytecodes a través de la red al ordenador del usuario.
3. El navegador crea un ejemplar de la subclase Applet. Cuando nos referimos a un applet, normalmente nos referimos a este ejemplar.
4. El navegador lama al método init() del applet. Este método realiza una necesaria inicialización.
5. El navegador llama al método start() del applet. Este método normalmente arranca un thread para realizar las tareas del applet.

Lo principal en un applet es la subclase Applet, clase controladora, pero los applets también pueden utilizar otras clases. Estas otras clases pueden ser propias del navegador, porporcionadas como parte del entorno Java o clases del usuario suministradas por ti. Cuando un applet intenta ejecutar una clase por primera vez, el navegador intenta encontrarla en el host donde se está ejecutando el navegador. Si no puede encontrarla allí, la busca en el mismo lugar de donde cargó la subclase Applet del applet. Cuando el navegador encuentra la clase, carga sus bytecodes (a través de la Red, si es necesario) y continua la ejecución del applet.

Cargar código ejecutable a través de la red es un riesgo de seguridad. Para los applets Java, algunos de estos riesgos se reducen, porque el lenguaje Java está diseñado para ser seguro --por ejemplo, no permite punteros a posiciones de memoria. Además, los navegadores compatibles con Java proporcionan seguridad imponiendo algunas restricciones. Estas restricciones incluyen no permitir a los applets la carga de código escrito en otro lenguaje que no sea Java, y tampoco permiten leer o escribir ficheros en el host donde se está ejecutando el navegador.

Ozito