Setting Colors

The user can use the Effects menu's Select Color… menu item to set the drawing color used for all drawing operations. When the user selects a drawing color, figures are drawn using that color, even if the user is drawing freehand with the mouse. Solid fills are drawn with that color, and gradient fills are drawn starting with that color and shading off to black. Even text is drawn in the color the user selects.

To let the user select a drawing color, Painter uses a Swing JColorChooser dialog box. This dialog box is easy to put to work, and it has a great deal of utility. Here's all you need to do: Use the JColorChooser class's static showDialog method and store the returned color; Painter stores that value in a Color object named color. Here's how it displays the color chooser (setting the default color to black) and stores the selected color:

if(e.getSource() == colorMenuItem){
    color = JColorChooser.showDialog(this, "Select your color",
        Color.black);
    start.x = -20;
    start.y = -20;
    end.x = -20;
    end.y = -20;
}

You can see the color chooser in Figure 4.8. As you can tell, there's a lot of functionality in that dialog box.

Figure 4.8. Selecting a color.


You can see the significant methods of the JColorChooser class in Table 4.4.

Table 4.4. The Significant Methods of the javax.swing.JColorChooser Class
MethodDoes This
void addChooserPanel(AbstractColorChooserPanel panel)Adds a new color chooser panel to this color chooser for use in choosing colors
AbstractColorChooserPanel[] getChooserPanels()Returns the color panels in the color chooser
Color getColor()Returns the current color value set in the color chooser
JComponent getPreviewPanel()Returns the preview panel, which displays a chosen color
AbstractColorChooserPanel removeChooser Panel
(AbstractColorChooserPanel panel)

Removes a given color panel
void setChooserPanels(AbstractColorChooserPanel[] panels)Specifies the color panels used to choose a color value
void setColor(Color color)Specifies the current color in the color chooser to be the given color
void setColor(int r, int g, int b)Specifies the current color in the color chooser to be the given RGB color
void setPreviewPanel(JComponent preview)Sets the preview panel that will be used by this color chooser
static Color showDialog(Component component,
String title, Color initialColor)

Displays the color chooser dialog box, letting the user select a color

In the paint method, where the actual drawing is done, Painter installs color as the new drawing color (and uses black as a default drawing color if no other color was selected):

if(color != null){
    gImage.setColor(color);
} else {
    gImage.setColor(new Color(0, 0, 0));
}

And that completes the Painter application—everything's all packed into the code now, and it's ready to roll.

NOTE

Download the complete source code for the Painter application—Painter.java and tile.jpg—at the Sams website. You can run Painter as you have the previous projects—just compile and run it using Java. Make sure that tile.jpg (which comes in the download) is in the same directory as Painter.class when you run Painter.


..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.119.17.64