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