Cómo utilizar Labels

Con la clase JLabel, puedes mostrar un texto seleccionable e imágenes. Las etiquetas no pueden obtener el foco del teclado.

Aquí tienes un gráfico de una aplicación que muestra tres etiquetas. La ventana está dividida en tres columnas de la misma altura; la etiqueta de cada columna es tan ancha como sea posible.


Intenta esto:
  1. Compila y ejecuta la aplicación. El fichero fuente está en LabelDemo.java.
    Puedes ver la página Empezar con Swing si necesitas ayuda.
  2. Redimensiona la ventana para poder ver cómo se alinean las etiquetas.
    Todas las etiquetas tienen la alineación verticar por defecto -- están en el centro vertical de su espacio. La etiqueta del nivel superior que contiene tanto imagen como texto, está especificada para tener alineamiento horizontal centrado. La segunda etiqueta, que sólo contiene texto, tiene alineamiento a la izquierda que es por defecto para las etiquetas de sólo texto. La tercera etiqueta, que sólo contiene una imagen, tiene alineamiento horizontal centrado que es por defecto para las etiquetas de sólo imagen.

Abajo tienes el código de LabelDemo.java que crea las etiquetas en el ejemplo anterior.

ImageIcon icon = new ImageIcon("middle.gif");
. . .
label1 = new JLabel("Image and Text",  icon,  JLabel.CENTER);
label1.setVerticalTextPosition(JLabel.BOTTOM);
label1.setHorizontalTextPosition(JLabel.CENTER);

label2 = new JLabel("Text-Only Label");

label3 = new JLabel(icon);

//Add labels to the JPanel. 
add(label1);
add(label2);
add(label3);
Las siguientes tablas listan los constructores y métodos de JLabel más utilizados. Otros métodos que podrías utilizar están definidos en la clase Component. Entre ellas se incluyen setFont y setForeground.

Seleccionar u Obtener los contenidos de una Etiqueta
Método o Constructor Propósito Ejemplo
JLabel(Icon)
JLabel(Icon, int)
JLabel(String)
JLabel(String, Icon, int)
JLabel(String, int)
JLabel()
Crea un ejemplar de JLabel, inicializándolo para que tenga el texto/imagen/alineamiento especificado. El argumento int especifica el alineamiento horizontal del contenido de la etiqueta dentro de su área de dibujo. El alineamiento debe ser una de las siguientes constantes definidas en el interface GraphicsUtilsConstants (que implementa JLabel): LEFT, CENTER, or LEFT. LabelDemo.java
void setText(String)
String getText()
Selecciona u obtiene el texto mostrado en la etiqueta. [Todavía ninguno]
void setIcon(Icon)
Icon getIcon()
Selecciona u obtiene la imagen mostrada por la etiqueta. [Todavía ninguno]
void setRepresentedKeyAccelerator(char)
char getRepresentedKeyAccelerator()
Selecciona u obtiene la letra que debería aparecer como atajo de teclado. Esto es útil cuando una etiqueta describe un componente [como un campo de texto] que tiene una tecla de atajo de teclado pero no puede mostrarlo. [todavía ninguno]
void setDisabledIcon(Icon)
Icon getDisabledIcon()
Selecciona la imagen que se muestra en la etiqueta cuando está desactivada. Si no se especifica una imagen, la máquina virtual crea una mediante una manipulación de la imagen por defecto. [Todavía ninguno]

Ajuste Fino de la Apariencia de una Etiqueta
Método Propósito Ejemplo
void setHorizontalAlignment(int)
void setVerticalAlignment(int)
int getHorizontalAlignment()
int getVerticalAlignment()
Selecciona u obtiene dónde se debe situar el contenido de la etiqueta. El interface GraphicsUtilsConstants define tres posibles valores para el alineamiento horizontal: LEFT (por defecto para etiquetas de sólo texto), CENTER (Por defecto para etiquetas de sólo imagen), o LEFT. Para alineamiento vertical: TOP, CENTER (por defecto), y BOTTOM. [Todavía ninguno]
void setHorizontalTextPosition(int)
void setVerticalTextPosition(int)
int getHorizontalTextPosition()
int getVerticalTextPosition()
Selecciona u obtiene dónde se debería situar el texto, en relación con la imagen. El interface GraphicsUtilsConstants define tres posibles valores para posición horizontal: LEFT, CENTER, y LEFT (por defecto). Para posición vertical: TOP, CENTER (por defecto), y BOTTOM. LabelDemo.java
void setIconTextGap(int)
int getIconTextGap()
Selecciona el número de pixels entre el texto y la imagen de la etiqueta. [Todavía ninguno]


Ozito