La clase
JColorChooser
proporciona el método estático
showDialog
, el cual crea un objeto
JColorChoo-
ser
, lo adjunta a un cuadro de diálogo y lo muestra en pantalla. Las líneas 36 y 37 de la fi gura 12.7 invocan a
este método para mostrar el cuadro de diálogo del selector de colores. El método
showDialog
devuelve el objeto
Color
seleccionado, o
null
si el usuario oprime
Cancelar
o cierra el cuadro de diálogo sin oprimir
Aceptar
. Este
método recibe tres argumentos: una referencia a su objeto
Component
padre, un objeto
String
a mostrar en la
barra de título del cuadro de diálogo y el
Color
inicial seleccionado para el cuadro de diálogo. El componente
padre es una referencia a la ventana desde la que se muestra el cuadro de diálogo (en este caso el objeto
JFrame
,
con el nombre de referencia
marco
). Este cuadro de diálogo estará centrado en el componente padre. Si el padre es
null
, entonces el cuadro de diálogo se centra en la pantalla. Mientras el cuadro de diálogo para seleccionar colo-
res se encuentre en la pantalla, el usuario no podrá interactuar con el componente padre. A este tipo de cuadro
de diálogo se le conoce como
cuadro de diálogo modal
(el cual se describirá en el capítulo 22, Componentes de
la GUI: parte 2).
Una vez que el usuario selecciona un color, en las líneas 40 y 41 se determina si
color
es
null
, y de ser así
color
se establece en el valor predeterminado
Color.LIGHT_GRAY
. En la línea 44 se utiliza el método
setBack-
ground
para cambiar el color de fondo del objeto
JPanel
. El método
setBackground
es uno de los muchos
métodos de la clase
Component
que pueden utilizarse en la mayoría de los componentes de la GUI. Observe que el
usuario puede seguir utilizando el botón
Cambiar color
para cambiar el color de fondo de la aplicación. La fi gura
12.8 contiene el método
main
, que ejecuta el programa.
34
public void
actionPerformed( ActionEvent evento )
35
{
36
color = JColorChooser.showDialog(
37
MostrarColores2JFrame.
this
,
"Seleccione un color"
, color );
38
39
/
/ establece el color predeterminado, si no se devuelve un color
40
if
( color ==
null
)
41
color =
Color.LIGHT_GRAY
;
42
43
// cambia el color de fondo del panel de contenido
44
coloresJPanel.setBackground( color );
45
}
// fin del método actionPerformed
46
}
// fin de la clase interna anónima
47
);
// fin de la llamada a addActionListener
48
49
add( coloresJPanel,
BorderLayout.CENTER
);
// agrega coloresJPanel
50
add( cambiarColorJButton,
BorderLayout.SOUTH
);
// agrega botón
51
52
setSize(
400
,
130
);
// establece el tamaño del marco
53
setVisible(
true
);
// muestra el marco
54
}
// fin del constructor de MostrarColores2JFrame
55
}
// fin de la clase MostrarColores2JFrame
Figura 12.7
| Cuadro de diálogo
JColorChooser
. (Parte 2 de 2).
1
// Fig. 12.8: MostrarColores2.java
2
// Selección de colores con JColorChooser.
3
import
javax.swing.JFrame;
4
5
public class
MostrarColores2
6
{
7
// ejecuta la aplicación
8
public static void
main( String args[] )
9
{
Figura 12.8
| Selección de colores con
JColorChooser
. (Parte 1 de 2).
12.3 Control de colores
547
12_MAQ_CAP_12_DEITEL.indd547
4/19/081:26:54AM