The first constructor takes three integers that specify the color as a mix of red, green, and
blue. These values must be between 0 and 255, as in this example:
new Color(255, 100, 100); // light red
The second color constructor takes a single integer that contains the mix of red, green, and
blue packed into an integer. The integer is organized with red in bits 16 to 23, green in bits 8
to 15, and blue in bits 0 to 7. Here is an example of this constructor:
int newRed = (0xff000000 | (0xc0 << 16) | (0x00 << 8) | 0x00);
Color darkRed = new Color(newRed);
The final constructor, Color(float, float, float), takes three float values (between 0.0 and 1.0)
that specify the relative mix of red, green, and blue.
Once you have created a color, you can use it to set the foreground and/or background
color by using the setForeground( ) and setBackground( ) methods described in Chapter 21.
You can also select it as the current drawing color.
Color Methods
The Color class defines several methods that help manipulate colors. They are examined here.
Using Hue, Saturation, and Brightness
The hue-saturation-brightness (HSB) color model is an alternative to red-green-blue (RGB) for
specifying particular colors. Figuratively, hue is a wheel of color. The hue is specified with a
number between 0.0 and 1.0 (the colors are approximately red, orange, yellow, green, blue,
indigo, and violet). Saturation is another scale ranging from 0.0 to 1.0, representing light pastels
to intense hues. Brightness values also range from 0.0 to 1.0, where 1 is bright white and 0
is black. Color supplies two methods that let you convert between RGB and HSB. They are
shown here:
static int HSBtoRGB(float hue, float saturation, float brightness)
static float[ ] RGBtoHSB(int red, int green, int blue, float values[ ])
HSBtoRGB( ) returns a packed RGB value compatible with the Color(int) constructor.
RGBtoHSB( ) returns a float array of HSB values corresponding to RGB integers. If values
is not null, then this array is given the HSB values and returned. Otherwise, a new array is
created and the HSB values are returned in it. In either case, the array contains the hue at
index 0, saturation at index 1, and brightness at index 2.
getRed( ), getGreen( ), getBlue( )
You can obtain the red, green, and blue components of a color independently using getRed( ),
getGreen( ), and getBlue( ), shown here:
int getRed( )
int getGreen( )
int getBlue( )
Each of these methods returns the RGB color component found in the invoking Color object
in the lower 8 bits of an integer.
Search WWH :
Custom Search
Previous Page
Java SE 6 Topic Index
Next Page
Java SE 6 Bookmarks
Home