900
Capítulo 22 Componentes de la GUI: parte 2
Todos los componentes de la GUI y el manejo de eventos de este ejemplo se han descrito anteriormente, por
lo que ahora nos concentraremos en el mecanismo para cambiar la apariencia visual. La clase
UIManager
(paquete
javax.swing
) contiene la clase anidada
LookAndFeelInfo
(una clase
publicstatic
) que mantiene la informa-
ción acerca de una apariencia visual. En la línea 22 se declara un arreglo de tipo
UIManager.LookAndFeelInfo
(observe la sintaxis utilizada para identifi car a la clase interna
LookAndFeelInfo
). En la línea 68 se usa el método
static
getInstalledLookAndFeels
de
UIManager
para obtener el arreglo de objetos
UIManager.LookAnd-
FeelInfo
que describe cada una de las apariencias visuales disponibles en su sistema.
Tip de rendimiento 22.2
Cada apariencia visual se representa mediante una clase de Java. El método
getInstalledLookAndFeels
de
UIManager
no carga a cada una de esas clases. En vez de ello, proporciona los nombres de las clases de apariencia
visual disponibles, de manera que pueda seleccionarse una de ellas (se supone que una vez, al inicio del programa).
Esto reduce la sobrecarga que se genera al cargar clases adicionales que el programa no va a utilizar.
1
// Fig. 22.9: MarcoAparienciaVisual.java
2
// Cambio de la apariencia visual.
3
import
java.awt.GridLayout;
4
import
java.awt.BorderLayout;
5
import
java.awt.event.ItemListener;
6
import
java.awt.event.ItemEvent;
7
import
javax.swing.JFrame;
8
import
javax.swing.UIManager;
9
import
javax.swing.JRadioButton;
10
import
javax.swing.ButtonGroup;
11
import
javax.swing.JButton;
12
import
javax.swing.JLabel;
13
import
javax.swing.JComboBox;
14
import
javax.swing.JPanel;
15
import
javax.swing.SwingConstants;
16
import
javax.swing.SwingUtilities;
17
18
public class
MarcoAparienciaVisual
extends
JFrame
19
{
20
// nombres de las apariencias visuales
21
private final
String cadenas[] = {
"Metal"
,
"Motif"
,
"Windows"
};
22
private
UIManager.LookAndFeelInfo apariencias[];
// apariencias visuales
23
private
JRadioButton opcion[];
// botones de opción para seleccionar la apariencia
visual
24
private
ButtonGroup grupo;
// grupo para los botones de opción
25
private
JButton boton;
// muestra la apariencia del botón
26
private
JLabel etiqueta;
// muestra la apariencia de la etiqueta
27
private
JComboBox cuadroComb;
// muestra la apariencia del cuadro combinado
28
29
// establece la GUI
30
public
MarcoAparienciaVisual()
31
{
32
super
(
"Demo de apariencia visual"
);
33
34
JPanel panelNorte =
new
JPanel();
// crea panel norte
35
panelNorte.setLayout(
new
GridLayout(
3
,
1
,
0
,
5
) );
36
37
etiqueta =
new
JLabel(
"Esta es una apariencia visual metalica"
,
38
SwingConstants.CENTER
);
// crea etiqueta
39
panelNorte.add( etiqueta );
// agrega etiqueta al panel
40
Figura 22.9
| Apariencia visual de una GUI basada en Swing. (Parte 1 de 3).
22_MAQ_CAP_22_DEITEL.indd900
4/19/081:17:11AM