Mega Code Archive
Changing the Color Chooser Panels
Create your own by subclassing the AbstractColorChooserPanel class.
To add a new panel to the existing set, call: public void addChooserPanel(AbstractColorChooserPanel panel)
To remove it: public AbstractColorChooserPanel removeChooserPanel(AbstractColorChooserPanel panel)
To replace the existing set of panels: setChooserPanels(AbstractColorChooserPanel panels[ ])
public abstract class AbstractColorChooserPanel extends JPanel {
public AbstractColorChooserPanel();
protected abstract void buildChooser();
protected Color getColorFromModel();
public ColorSelectionModel getColorSelectionModel();
public int getDisplayMnemonicIndex();
public abstract String getDisplayName();
public abstract Icon getLargeDisplayIcon();
public int getMnemonic();
public abstract Icon getSmallDisplayIcon();
public void installChooserPanel(JColorChooser);
public void paint(Graphics);
public void uninstallChooserPanel(JColorChooser);
public abstract void updateChooser();
}
import java.awt.Color;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.colorchooser.AbstractColorChooserPanel;
import javax.swing.colorchooser.ColorSelectionModel;
class SystemColorChooserPanel
extends AbstractColorChooserPanel
implements ItemListener {
private static int NOT_FOUND = -1;
JComboBox comboBox;
String labels[] = {
"BLACK",
"BLUE",
"CYAN",
""};
Color colors[] = {
Color.BLACK,
Color.BLUE,
Color.CYAN,
null};
private void setColor(Color newColor) {
int position = findColorPosition(newColor);
comboBox.setSelectedIndex(position);
}
private int findColorLabel(Object label) {
String stringLabel = label.toString();
int position = NOT_FOUND;
for (int i=0,n=labels.length; i