9.8 (Opcional) Ejemplo práctico de GUI y gráfi cos: mostar texto e imágenes usando etiquetas 

411

9.8 (Opcional) Ejemplo práctico de GUI y gráfi cos: mostar texto 
e imágenes usando etiquetas

A menudo, los programas usan etiquetas cuando necesitan mostrar información o instrucciones al usuario, en una 
interfaz gráfi ca de usuario. Las 

etiquetas

 son una forma conveniente de identifi car componentes de la GUI en la 

pantalla, y de mantener al usuario informado acerca del estado actual del programa. En Java, un objeto de la clase 

JLabel

 (del paquete 

javax.swing

) puede mostrar una sola línea de texto, una imagen o ambos. El ejemplo de 

la fi gura 9.19 demuestra varias características de 

JLabel

.

Las líneas 3 a 6 importan las clases que necesitamos para mostrar los objetos 

JLabel.BorderLayout

 del 

paquete

java.awt

 contienen constantes que especifi can en dónde podemos colocar componentes de GUI en el 

objeto

JFrame

. La clase 

ImageIcon

 representa una imagen que puede mostrarse en un 

JLabel

, y la clase 

JFrame

representa la ventana que contiene todas las etiquetas.

La línea 13 crea un objeto 

JLabel

 que muestra el argumento de su constructor: la cadena 

"Norte"

. La línea 

16 declara la variable local 

etiquetaIcono

 y le asigna un nuevo objeto 

ImageIcon

. El constructor para 

Image-

Icon

 recibe un objeto 

String

 que especifi ca la ruta del archivo de la imagen. Como sólo especifi camos un nom-

bre de archivo, Java supone que se encuentra en el mismo directorio que la clase 

DemoLabel

.

ImageIcon

 puede 

cargar imágenes en los formatos GIF, JPEG y PNG. La línea 19 declara e inicializa la variable local 

etiquetaCen-

tro

 con un objeto 

JLabel

 que muestra el objeto 

etiquetaIcono

. La línea 22 declara e inicializa la variable local 

etiquetaSur

 con un objeto 

JLabel

 similar al de la línea 19. Sin embargo, la línea 25 llama al método 

setText

para modifi car el texto que muestra la etiqueta. El método 

setText

 puede llamarse en cualquier objeto 

JLabel

 para

modifi car su texto. Este objeto 

JLabel

 muestra tanto el icono como el texto.

Método

Descripción

finalize

El recolector de basura llama a este método 

protected

(presentado en las secciones 8.10 y 8.11) para 

realizar las tareas de preparación para la terminación en un objeto, justo antes de que el recolector de 
basura reclame la memoria de ese objeto. No se garantiza que el recolector de basura vaya a reclamar un 
objeto, por lo que no se puede garantizar que se ejecute el método 

finalize

 del objeto. El método debe 

especifi car una lista de parámetros vacía y debe devolver 

void

. La implementación predeterminada de 

este método sirve como un receptáculo que no hace nada.

getClass

Todo objeto en Java conoce su tipo en tiempo de ejecución. El método 

getClass

 (utilizado en las 

secciones 10.5 y 21.3) devuelve un objeto de la clase 

Class

 (paquete 

java.lang

), el cual contiene 

información acerca del tipo del objeto, como el nombre de su clase (devuelto por el método 

getName

 de 

Class

). Puede aprender más acerca de la clase 

Class

 en la documentación de la API en línea, en 

java.

sun.com/javase/6/docs/api/java/lang/Class.html

.

hashCode

Una tabla de hash es una estructura de datos (descrita en la sección 19.10) que relaciona a un objeto, 
llamado la clave, con otro objeto, llamado el valor. Cuando inicialmente se inserta un valor en una
tabla de hash, se hace una llamada al método 

hashCode

 de la clave. La tabla de hash utiliza el valor de 

código de hash devuelto para determinar la ubicación en la que se debe insertar el valor correspondiente.
La tabla de hash también utiliza el código de hash de la clave para localizar el valor correspondiente
de la misma.

notify,

notifyAll,

wait

Los métodos 

notify

,

notifyAll

 y las tres versiones sobrecargadas de 

wait

 están relacionados con el 

subprocesamiento múltiple, que veremos en el capítulo 23. En versiones recientes de Java, el modelo 
de subprocesamiento múltiple ha cambiado en forma considerable, pero estas características se siguen 
soportando.

toString

Este método (presentado en la sección 9.4.1) devuelve una representación 

String

 de un objeto. La 

implementación predeterminada de este método devuelve el nombre del paquete y el nombre de la clase 
del objeto, seguidos por una representación hexadecimal del valor devuelto por el método 

hashCode

 del 

objeto.

Figura 9.18

  |  Los métodos de 

Object

 que todas las clases heredan en forma directa o indirecta. (Parte 2 de 2).

09_MAQ_CAP_09.indd411

4/19/081:24:42AM