Developing a Custom Preview Panel

In addition to creating custom color chooser panels, you can create your own preview panel. You can use any JComponent—just set the previewPanel property. As you update the color in the chooser, the foreground property of the preview panel changes. You can extend a container like JPanel and override the setForeground( ) method to gain more control over what parts of the pane are updated. Figure 12-9 shows a simple custom preview pane. We add two labels: one to show the foreground color (this label says, “This is a custom preview pane”) and one to show the background color.

A custom preview panel added in a JColorChooser object

Figure 12-9. A custom preview panel added in a JColorChooser object

Remember that some L&Fs don’t allow you to set the foreground or background colors of some components. If you’re on a Mac OS X system, for example, you can run ColorPicker3 this way:

            % java -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel ColorPicker3

This custom pane is added to our ColorPicker3 chooser by setting the previewPanel property after we create the chooser object:

chooser.setPreviewPanel(new CustomPane( ));

Here’s the code for the CustomPane class. We build it as an inner class.

public class CustomPane extends JPanel { JLabel j1 = new JLabel("This is a custom preview pane", JLabel.CENTER); JLabel j2 = new JLabel("This label previews the background", JLabel.CENTER); public CustomPane( ) { super(new ...

Get Java Swing, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.