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