![]() |
The Java Developers Almanac 1.4Order this book from Amazon. |
e881. Removing a Color Chooser Panel from a JColorChooser DialogRemoving chooser panels is simply a matter ofremoveChooserPanel() .
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); } }
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
© 2002 Addison-Wesley. |