492
Capítulo 11 Componentes de la GUI: parte 1
Los objetos
JRadioButton
, al igual que los objetos
JCheckbox
, generan eventos tipo
ItemEvent
cuando se
hace clic sobre ellos. En las líneas 59 a 66 se crean cuatro instancias de la clase interna
ManejadorBotonOpcion
(declarada en las líneas 70 a 84). En este ejemplo, cada objeto componente de escucha de eventos se registra para
manejar el evento
ItemEvent
que se genera cuando el usuario hace clic en cualquiera de los objetos
JRadioBu-
tton
. Observe que cada objeto
ManejadorBotonOpcion
se inicializa con un objeto
Font
específi co (creado en
las líneas 52 a 55).
La clase
ManejadorBotonOpcion
(línea 70 a 84) implementa la interfaz
ItemListener
para poder manejar
los eventos
ItemEvent
generados por los objetos
JRadioButton
. El constructor almacena el objeto
Font
que
recibe como un argumento en la variable de instancia
tipoLetra
(declarada en la línea 72) del objeto compo-
nente de escucha de eventos. Cuando el usuario hace clic en un objeto
JRadioButton
,
grupoOpciones
desactiva
el objeto
JRadioButton
previamente seleccionado y el método
itemStateChanged
(líneas 80 a 83) establece el
tipo de letra en el objeto
JTextField
al tipo de letra almacenado en el objeto componente de escucha de eventos
correspondiente al objeto
JRadioButton
. Observe que la línea 82 de la clase interna
ManejadorBotonesOpcion
utiliza la variable de instancia
campoTexto
de la clase de nivel superior para establecer el tipo de letra.
11.10
JComboBox
y el uso de una clase interna anónima
para el manejo de eventos
Un cuadro combinado (algunas veces conocido como
lista desplegable
) proporciona una lista de elementos
(fi gura 11.22), de la cual el usuario puede seleccionar solamente uno. Los cuadros combinados se implementan
con la clase
JComboBox
, la cual extiende a la clase
JComponent
. Los objetos
JComboBox
generan eventos
Item-
Event
, al igual que los objetos
JCheckBox
y
JRadioButton
. Este ejemplo también demuestra una forma especial
de clase interna, que se utiliza con frecuencia en el manejo de eventos.
La aplicación de las fi guras 11.21 y 11.22 utiliza un objeto
JComboBox
para proporcionar una lista de cua-
tro nombres de archivos de imágenes, de los cuales el usuario puede seleccionar una imagen para mostrarla en
pantalla. Cuando el usuario selecciona un nombre, la aplicación muestra la imagen correspondiente como un
objeto
Icon
en un objeto
JLabel
. La clase
PruebaCuadroCombinado
(fi gura 11.22) contiene el método
main
que ejecuta esta aplicación. Las capturas de pantalla para esta aplicación muestran la lista
JComboBox
después de
hacer una selección, para ilustrar cuál nombre de archivo de imagen fue seleccionado.
Figura 11.21
| Objeto
JComboBox
que muestra una lista de nombres de imágenes. (Parte 1 de 2).
1
// Fig. 11.21: MarcoCuadroCombinado.java
2
// Uso de un objeto JComboBox para seleccionar una imagen a mostrar.
3
import
java.awt.FlowLayout;
4
import
java.awt.event.ItemListener;
5
import
java.awt.event.ItemEvent;
6
import
javax.swing.JFrame;
7
import
javax.swing.JLabel;
8
import
javax.swing.JComboBox;
9
import
javax.swing.Icon;
10
import
javax.swing.ImageIcon;
11
12
public class
MarcoCuadroCombinado
extends
JFrame
13
{
14
private
JComboBox imagenesJComboBox;
// cuadro combinado con los nombres de los
iconos
15
private
JLabel etiqueta;
// etiqueta para mostrar el icono seleccionado
16
17
private
String nombres[] =
18
{
“insecto1.gif”
,
“insecto2.gif”
,
“insectviaje.gif”
,
“insectanim.gif”
};
19
private
Icon iconos[] = {
20
new
ImageIcon( getClass().getResource( nombres[
0
] ) ),
21
new
ImageIcon( getClass().getResource( nombres[
1
] ) ),
22
new
ImageIcon( getClass().getResource( nombres[
2
] ) ),
23
new
ImageIcon( getClass().getResource( nombres[
3
] ) ) };
11_MAQ_CAP_11.indd492
4/19/081:26:07AM