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