848

Capítulo 20 Introducción a los applets de Java

Creación de la clase Applet

En la línea 3 se importa la clase 

Graphics

 para permitir al applet dibujar gráfi cos, como líneas, rectángulos, óvalos 

y cadenas de caracteres. La clase 

JApplet

 (que se importa en la línea 4) del paquete 

javax.swing

 se utiliza para 

crear applets. Al igual que con las aplicaciones, todo applet de Java contiene por lo menos una declaración de clase 

public

. Un contenedor de applets sólo puede crear objetos de clases que sean 

public

 y extiendan a 

JApplet

¿o a la clase 

Applet

 de las versiones anteriores de Java? Por esta razón, la clase 

BienvenidoApplet

 (líneas 6 a 17) 

extiende a 

JApplet

.

Un contenedor de applets espera que todo applet de Java tenga métodos llamados 

init

,

start

,

paint

,

stop

y

destroy

, cada uno de los cuales está declarado en la clase 

JApplet

. Cada nueva clase de applet que crea el 

programador hereda las implementaciones predeterminadas de estos métodos de la clase 

JApplet

. Estos métodos 

se pueden sobrescribir (redefi nir) para realizar tareas específi cas de cada applet. En la sección 20.4 veremos cada 
uno de estos métodos con más detalle.

Cuando un contenedor de applets carga la clase 

BienvenidoApplet

, el contenedor crea un objeto de tipo 

BienvenidoApplet

, y después llama a tres de los métodos del applet. En secuencia, estos tres métodos son: 

init

,

start

 y 

paint

. Si no declaramos estos métodos en el applet, el contenedor de applets llama a las versiones here-

dadas. Los métodos 

init

 y 

start

 de la superclase tienen cuerpos vacíos, por lo que no realizan ninguna tarea. El 

método

paint

de la superclase no dibuja nada en el applet.

Tal vez usted se pregunte por qué es necesario heredar los métodos 

init

,

start

 y 

paint

 si sus implemen-

taciones predeterminadas no realizan tareas. Algunos applets no utilizan todos estos métodos. Sin embargo, el 
contenedor de applets no sabe eso. Por ende, espera que todo applet tenga estos métodos, de manera que pueda 
proporcionar una secuencia de inicio consistente para cada applet. Esto es similar al hecho de que las aplicaciones 
siempre empiezan su ejecución con 

main

. Al heredar las versiones “predeterminadas” de estos métodos, se garan-

tiza que el contenedor de applets podrá ejecutar cada applet de manera uniforme. Además, al heredar las imple-
mentaciones predeterminadas de estos métodos, el programador puede concentrarse en defi nir sólo los métodos 
requeridos para un applet específi co.

Cómo sobrescribir el método 

paint

 para dibujar

Para permitir que nuestro applet dibuje, la clase 

BienvenidoApplet

 sobrescribe el método 

paint

(líneas 9 a 16), 

al colocar instrucciones en el cuerpo de 

paint

 que dibujan un mensaje en la pantalla. El método 

paint

 recibe 

un parámetro de tipo 

Graphics

 (al cual se le llama 

g

 por convención), el cual se utiliza para dibujar gráfi cos en 

el applet. No se llama explícitamente al método 

paint

 en un applet. En vez de ello, el contenedor de applets 

llama a 

paint

para indicar al applet cuándo dibujar, y el contenedor de applets es responsable de pasar un objeto 

Graphics

como argumento.

En la línea 12 se hace una llamada a la versión del método 

paint

 de la superclase, que se heredó de 

JApplet

.

Esta instrucción debe ser la primera instrucción en el método 

paint

 de todo applet. Si se omite podría provocar 

errores sutiles de dibujo en los applets que combinen el dibujo con componentes de la GUI.

En la línea 15 se utiliza el método 

drawString

 de 

Graphics

 para dibujar 

Bienvenidoalaprogramacion

enJava!

 en el applet. Este método recibe como argumentos el objeto 

String

 a dibujar y las coordenadas 

x-y en 

las que debe aparecer la esquina inferior izquierda del objeto 

String

 en el área de dibujo. Cuando se ejecuta la 

línea 15, dibuja el objeto 

String

 en el applet, en las coordenadas 

25

 y 

25

.

20.3.1 Cómo ejecutar un applet en el 

appletviewer

Al igual que con las clases de aplicaciones, debemos compilar una clase de applet antes de poder ejecutarla. Des-
pués de crear la clase 

BienvenidoApplet

 y guardarla en el archivo 

BienvenidoApplet.java

, abra una ventana 

de comandos, cambie al directorio en el que guardó la declaración de la clase de applet y compile la clase 

Bien-

venidoApplet

.

Recuerde que los applets están incrustados en páginas Web para ejecutarlos en un contenedor de applets 

(

appletviewer

 o un explorador Web). Antes de poder ejecutar el applet, debe crear un documento HTML (Len-

guaje de marcado de hipertexto) que especifi que cuál applet ejecutar en el contenedor de applets. Por lo general, 
un documento HTML termina con la extensión de archivo “

.html

” o “

.htm

”. En la fi gura 20.8 se muestra un 

documento HTML simple (

BienvenidoApplet.html

) que carga el applet defi nido en la fi gura 20.6, en un con-

tenedor de applets. [

Nota: si está interesado en aprender más acerca de HTML, el CD que se incluye en este 

20_MAQ_CAP_20_DEITEL.indd848

4/19/081:32:17AM