The Java Developers Almanac 1.4


Order this book from Amazon.

   
Home > List of Packages > javax.swing.colorchooser  [10 examples] > Color Chooser Panel  [4 examples]

e881. Removing a Color Chooser Panel from a JColorChooser Dialog

Removing chooser panels is simply a matter of removeChooserPanel(). The issue is to identify the panels that are to be kept. There are three chooser panels in the default JColorChooser dialog. Although each is implemented by a class in the javax.swing.colorchooser package, these classes are not public. This example demonstrates how to identify these panels by class name.
    JColorChooser chooser = new JColorChooser();
    
    // Retrieve the current set of panels
    AbstractColorChooserPanel[] oldPanels = chooser.getChooserPanels();
    
    // Remove panels
    for (int i=0; i<oldPanels.length; i++) {
        String clsName = oldPanels[i].getClass().getName();
        if (clsName.equals("javax.swing.colorchooser.DefaultSwatchChooserPanel")) {
            // Remove swatch chooser if desired
            chooser.removeChooserPanel(oldPanels[i]);
        } else if (clsName.equals("javax.swing.colorchooser.DefaultRGBChooserPanel")) {
            // Remove rgb chooser if desired
            chooser.removeChooserPanel(oldPanels[i]);
        } else if (clsName.equals("javax.swing.colorchooser.DefaultHSBChooserPanel")) {
            // Remove hsb chooser if desired
            chooser.removeChooserPanel(oldPanels[i]);
        }
    }
    
    // This preview pane simply displays the currently selected color.
    public class MyPreviewPane extends JComponent {
        // The currently selected color
        Color curColor;
    
        public MyPreviewPane(JColorChooser chooser) {
            // Initialize the currently selected color
            curColor = chooser.getColor();
    
            // Add listener on model to detect changes to selected color
            ColorSelectionModel model = chooser.getSelectionModel();
            model.addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent evt) {
                    ColorSelectionModel model = (ColorSelectionModel)evt.getSource();
    
                    // Get the new color value
                    curColor = model.getSelectedColor();
                }
            }) ;
    
            // Set a preferred size
            setPreferredSize(new Dimension(50, 50));
        }
    
        // Paint current color
        public void paint(Graphics g) {
            g.setColor(curColor);
            g.fillRect(0, 0, getWidth()-1, getHeight()-1);
        }
    }

 Related Examples
e880. Retrieving the Color Chooser Panels in a JColorChooser Dialog
e882. Setting the Order of the Color Chooser Panel Tabs in a JColorChooser Dialog
e883. Adding a Custom Color Chooser Panel to a JColorChooser Dialog

See also: Events    Preview Panel   


© 2002 Addison-Wesley.