Now that we know how to create various 2D shapes, the next step would be to use colors in our UI components. Not everything looks fine in black and white. Colors bring some radiance and class to the look and feel of a UI component. In this chapter, we are going to learn how to do just that.
So, lets get started!!!
Using Colors:
The setPaint method of the Graphics2D class lets you select a color that will be used for all subsequent drawing operations on the graphics context. For example:
g2.setPaint(Color.RED);
g2.drawString("Caution!", 100, 100);
You can fill the interiors of closed shapes (such as rectangles or ellipses) with a color. Simply call fill instead of draw:
Rectangle2D rect = . . .;
g2.setPaint(Color.RED);
g2.fill(rect); // fills the rect object with red color
To draw in multiple colors, you select a color, draw or fill, then select another color, and draw or fill again.
You define colors with the Color class. The java.awt.Color class offers predefined constants for the following 13 standard colors:
BLACK, BLUE, CYAN, DARK_GRAY, GRAY, GREEN, LIGHT_GRAY, MAGENTA, ORANGE, PINK, RED, WHITE, YELLOW
You can specify a custom color by creating a Color object by its red, green, and blue components. Using a scale of 0–255 (that is, one byte) for the redness, blueness, and greenness and then invoke the Color constructor like below:
Color(int redness, int greenness, int blueness)
Example:
g2.setPaint(new Color(0, 128, 128));
g2.drawString("Welcome!", 75, 125);
To set the background color, you use the setBackground method of the Component class, an ancestor of JComponent.
MyComponent p = new MyComponent();
p.setBackground(Color.MAGENTA);
There is also a setForeground method. It specifies the default color that is used for drawing on the component.
Java gives you predefined names for many more colors in its SystemColor class. The constants in this class encapsulate the colors used for various elements of the user’s system. For example,
p.setBackground(SystemColor.window)
sets the background color of the component to the default used by all windows on the user’s desktop.
Using the colors in the SystemColor class is particularly useful when you want to draw user interface elements so that the colors match those already found on the user’s desktop.
Let us now take a look at all the possible color options available in the System Color class and their usage.
So, lets get started!!!
Using Colors:
The setPaint method of the Graphics2D class lets you select a color that will be used for all subsequent drawing operations on the graphics context. For example:
g2.setPaint(Color.RED);
g2.drawString("Caution!", 100, 100);
You can fill the interiors of closed shapes (such as rectangles or ellipses) with a color. Simply call fill instead of draw:
Rectangle2D rect = . . .;
g2.setPaint(Color.RED);
g2.fill(rect); // fills the rect object with red color
To draw in multiple colors, you select a color, draw or fill, then select another color, and draw or fill again.
You define colors with the Color class. The java.awt.Color class offers predefined constants for the following 13 standard colors:
BLACK, BLUE, CYAN, DARK_GRAY, GRAY, GREEN, LIGHT_GRAY, MAGENTA, ORANGE, PINK, RED, WHITE, YELLOW
You can specify a custom color by creating a Color object by its red, green, and blue components. Using a scale of 0–255 (that is, one byte) for the redness, blueness, and greenness and then invoke the Color constructor like below:
Color(int redness, int greenness, int blueness)
Example:
g2.setPaint(new Color(0, 128, 128));
g2.drawString("Welcome!", 75, 125);
To set the background color, you use the setBackground method of the Component class, an ancestor of JComponent.
MyComponent p = new MyComponent();
p.setBackground(Color.MAGENTA);
There is also a setForeground method. It specifies the default color that is used for drawing on the component.
Trivia:
The brighter() and darker() methods of the Color class produce, as their names suggest, either brighter or darker versions of the current color. Using the brighter method is also a good way to highlight an item. Actually, brighter() is just a little bit brighter. To make a color really stand out, apply it three times: c.brighter().brighter().brighter().
Java gives you predefined names for many more colors in its SystemColor class. The constants in this class encapsulate the colors used for various elements of the user’s system. For example,
p.setBackground(SystemColor.window)
sets the background color of the component to the default used by all windows on the user’s desktop.
Using the colors in the SystemColor class is particularly useful when you want to draw user interface elements so that the colors match those already found on the user’s desktop.
Let us now take a look at all the possible color options available in the System Color class and their usage.
Name | Usage/Purpose |
---|---|
desktop | Background color of desktop |
activeCaption | Background color for captions |
activeCaptionText | Text color for captions |
activeCaptionBorder | Border color for caption text |
inactiveCaption | Background color for inactive captions |
inactiveCaptionText | Text color for inactive captions |
inactiveCaptionBorder | Border color for inactive captions |
window | Background for windows |
windowBorder | Color of window border frame |
windowText | Text color inside windows |
menu | Background for menus |
menuText | Text color for menus |
text | Background color for text |
textText | Text color for text |
textInactiveText | Text color for inactive controls |
textHighlight | Background color for highlighted text |
textHighlightText | Text color for highlighted text |
control | Background color for controls |
controlText | Text color for controls |
controlLtHighlight | Light highlight color for controls |
controlHighlight | Highlight color for controls |
controlShadow | Shadow color for controls |
controlDkShadow | Dark shadow color for controls |
scrollbar | Background color for scrollbars |
info | Background color for spot-help text |
infoText | Text color for spot-help text |
No comments:
Post a Comment