546

Capítulo 12 Gráfi cos y Java 2D™

En las líneas 22 a 24 y 27 a 29 se llevan a cabo, nuevamente, las mismas tareas. En la línea 22 se utiliza el 

constructor de 

Color

 con tres argumentos 

float

 para crear el color verde oscuro (

0.50f

 para rojo, 

0.75f

 para 

verde y 

0.0f

para azul). Observe la sintaxis de los valores. La letra 

f

 anexada a una literal de punto fl otante indica 

que la literal debe tratarse como de tipo 

float

. De manera predeterminada, las literales de punto fl otante se tratan 

como de tipo 

double

.

En la línea 27 se establece el color actual de dibujo a una de las constantes de 

Color

 previamente declara-

das (

Color.BLUE

). Las constantes de 

Color

 son 

static

, por lo que se crean cuando la clase 

Color

 se carga en 

memoria, en tiempo de ejecución. 

La instrucción de las líneas 35 y 36 hace llamadas a los métodos 

getRed

,

getGreen

 y 

getBlue

 de 

Color

 en la 

constante

Color.MAGENTA

 previamente declarada. El método 

main

 de la clase 

MostrarColores

 (líneas 8 a 18 de 

la fi gura 12.6) crea el objeto 

JFrame

 que contendrá un objeto 

ColorJPanel

, en donde se mostrarán los colores.

Observación de ingeniería de software 12.1

Para cambiar el color, debe crear un nuevo objeto 

Color

 (o utilizar una de las constantes de 

Color

 previamente 

declaradas). Al igual que los objetos 

String

, los objetos 

Color

 son inmutables (no pueden modifi carse).

El paquete 

javax.swing

 proporciona el componente de la GUI 

JColorChooser

 para permitir a los usua-

rios de aplicaciones seleccionar colores. La aplicación de las fi guras 12.7 y 12.8 demuestra un cuadro de diálogo 

JColorChooser

. Al hacer clic en el botón 

Cambiar color

, aparece un cuadro de diálogo 

JColorChooser

. Al 

seleccionar un color y oprimir el botón 

Aceptar

, el color de fondo de la ventana de la aplicación cambia.

 1 

// Fig. 12.7: MostrarColores2JFrame.java

 2 

// Selección de colores con JColorChooser.

 3 

import

 java.awt.BorderLayout;

 4 

import

 java.awt.Color;

 5 

import

 java.awt.event.ActionEvent;

 6 

import

 java.awt.event.ActionListener;

 7 

import

 javax.swing.JButton;

 8 

import

 javax.swing.JFrame;

 9 

import

 javax.swing.JColorChooser;

 10 

import

 javax.swing.JPanel;

 11 
 12 

public class

 MostrarColores2JFrame 

extends

 JFrame 

 13 

{

 14  

private

 JButton cambiarColorJButton;

 15  

private

 Color color = 

Color.LIGHT_GRAY

;

 16  

private

 JPanel coloresJPanel;

 17  
 18  

// establece la GUI

 19  

public

 MostrarColores2JFrame()

 20  

{

 21  

 

super(

"Uso de JColorChooser"

 );

 22  
 23  

 

// crea objeto JPanel para mostrar color

 24  

 

coloresJPanel = 

new

 JPanel();

 25  

 

coloresJPanel.setBackground( color );

 26  
 27  

 

// establece cambiarColorJButton y registra su manejador de eventos

 28  

 

cambiarColorJButton = 

new

 JButton( 

"Cambiar color"

 );

 29  

 

cambiarColorJButton.addActionListener(

 30  
 

31    

new

 ActionListener() 

// clase interna anónima

 

32    

{

 33 

 

 

 

     

 // muestra JColorChooser cuando el usuario hace clic con el botón

Figura 12.7 

 |  Cuadro de diálogo 

JColorChooser

. (Parte 1 de 2).

12_MAQ_CAP_12_DEITEL.indd546

4/19/081:26:54AM