�Qu� clase deber�amos inicializar para los objetos image, text, y text area?
Para mostrar texto e im�genes, se usan las clases JLabel e ImageIcon. Una etiqueta es un cadena de texto corta, con o sin una imagen asociada. Las etiquetas normalmente se usan para mostrar t�tulos o para etiquetar otros objetos de la aplicaci�n, como campos o �reas de texto. Podemos usar las clases JLabel y IconImage para mostrar el t�tulo y la bandera de buceo sobre el panel Welcome. La clase JTextArea se usa para �reas de texto.
�Etiquetas e Im�genes
Un objeto JLabel es uno de los componentes m�s simples en la librer�a Swing. Usamos JLabel para mostrar texto o im�genes de las misma forma que las etiquetas del mundo real. La propia etiqueta contiene el texto y la imagen como la etiqueta de una lata de tomate.
Aqu� est� c�mo mostrar una etiqueta de texto en una aplicacion:
- Inicializar un objeto de la clase JLabel con la palabra clave new.
- Asignarlo a un nombre de variable que sea corto pero descriptivo.
- Suministrar el texto deseado en el constructor de JLabel.
- A�adir la etiqueta al panel.

La ilustraci�n de arriba muestra c�mo se construyen juntas las distintas partes de una etiqueta. La etiqueta se construye con un String para mostrarlo a�adi�ndolo al constructor de JLabel, y la etiqueta es a�adida a un JPanel. Esta etiqueta tambi�n tiene un fondo azul y un color de primer plano blanco.
En el c�digo de abajo, se crea un JLabel simple:
JLabel text = new JLabel("This is text on a JLabel.");
Hasta ahora un objeto etiqueta con texto se creaba identificando el objeto como del tipo JLabel, asignandolo a la variable text, usando la palabra clave new, y proporcionando el texto que aparece en la etiqueta como un objeto String .
Sin embargo, para mostrarla realmente en la aplicaci�n, la etiqueta debe a�adirse al panel.
Recuerda que la clase Welcome es del tipo JPanel porque extiende la clase JPanel. Esta subclase Welcome hereda m�todos de la clase Container, incluyendo uno llamado add. Para a�adir la etiqueta la panel, llamamos al m�todo por su nombre, add, y proporcionamos al m�todo el objeto que queremos a�adir, en este caso text:
add(text);
Esas dos l�neas muestran el texto This is text on a JLabel.. Podemos cambiar la forma en la que aparece el texto usando diferentes constructores de JLabel, o referenciando el nombre de variable con un m�todo, como para aplicar un tipo de fuente espec�fico, o hacer que la etiqueta sea de un color espec�fico.
Como hemos visto, los m�todos de la clase Component son heredados y est�n disponibles para que los usemos con nuestras variables con el operador punto y llamando al m�todo:
text.setForeground(Color.red);
La clase JLabel tambi�n tiene m�todos que nos permiten manipular el objeto etiqueta. El m�todo setHorizontalAlignment posiciona el objeto etiqueta:
text.setHorizontalAlignment(SwingConstants.RIGHT);
Aqu�, como antes, usamos el nombre el objeto que queremos manipular, y luego la llamada al m�todo usando el operador punto y el nombre del m�todo. Pasamos en la clase SwingConstants, el operador punto, y la posici�n en la que queremos situar el objeto.
Adem�s, podemos crear objetos JLabel con constructores que construyen algunos de estos detalles, como la posici�n, dentro de la creaci�n de la etiqueta:
JLabel text = new JLabel( "This text will be centered.", JLabel.CENTER);
Una aplicaci�n llamada Label.java demuestra los conceptos cubiertos hasta ahora, y el resultado es el siguiente:

Nota:
Como s�lo hemos a�adido un componente a esta aplicaci�n el controlador de distribuci�n por defecto (FlowLayout) es suficiente. |
La clase JLabel tambi�n ofrece un constructor que muestra un icono de imagen con el texto, que se describe en la siguiente secci�n.
�Mostrar Im�genes con ImageIcon y JLabel
Para mostrar im�genes, creamos un objeto con la clase ImageIcon y le proporcionamos al constructor un fichero de imagen en un formato soportado por la clase ImageIcon, como .gif o .jpg. La imagen puede ser pasada al constructor como:
- un String con el nombre del fichero.
- un objeto URL especificando la localizaci�n de la imagen.
- un objeto Image
- un array de bytes con los datos de la imagen.
El objeto ImageIcon puede cargarse dentro de un JLabel, JButton, JMenuItem, u otro componente similar.
Todo esto se puede hacer en un s�lo paso debido a un constructor manejable de JLabel:
JLabel(String text, Icon icon, int horizontalAlignment)
Donde pone Icon icon, insertamos el constructor de ImageIcon que queremos usar. Por ejemplo:
// assigns the variable imageLabel // as a JLabeltype JLabel imageLabel = // Initializes a JLabel object with // a String object, // Label with an Image. new JLabel("Java Technology Dive Log", // Initializes an ImageIcon object, // specifically a diveflag.gif in a // directory called images. new ImageIcon("images/diveflag.gif"), // Centers the JLabel object. JLabel.CENTER);
El c�digo de arriba crea un objeto JLabel que act�a como un contenedor para el obejto ImageIcon y el texto, como se ilustra abajo:

Ahora que la etiqueta y la imagen se han inicializado y asignado a jl, podemos llamar a otros m�todos sobre ese objeto para cambiar alguna de las caracter�sticas por defecto, como la fuente utilizada en el texto.
La clase JComponent tiene un m�todo setFont para este prop�sito. El m�todo requiere un objeto Font como argumento, lo que significa que debemos inicializar la clase Font con la palabra clave new. La inicializaci�n de la clase Font requiere tres argumentos:
- Una representaci�n String de la fuente, como "Courier"
- El estilo de la fuente, como Font.BOLD.
- Un int para el tama�o en puntos de la fuente, como 14.
Para cambiar la fuente por defecto mostrada en JLabel, usamos:
jl.setFont(new Font("Times-Roman", Font.BOLD, 17));
Este c�digo selecciona la fuente del objeto jl a Times Roman, en bold, a 17 puntos.
Sigue estos pasos... |
---|
|
��reas de Texto con JTextArea
JLabel es usada para mostrar peque�as cadenas de texto. Para mostrar grandes bloques de texto, inicializamos un objeto de la clase JTextArea. Ya hemos configurado una variable para un �rea de texto llamada ta al principio de la clase. Luego crearemos el �rea de texto asign�ndole la variable que hemos creado.
En la clase Welcome, usamos el siguiente constructor de JTextArea:
JTextArea(String text)
Nuestro c�digo se paracer� a algo como esto:
ta = new JTextArea("This application uses a typical Graphical User Interface (GUI), featuring AWT layout managers and Project Swing components . . .");
Pero hay un problema con este c�digo. Si compilamos este constructor seg�n est� escrito, obtendremos un error.
�Por qu� no se compilar� el c�digo del ejemplo? |
---|