import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import javax.swing.colorchooser.*;
public class CrayonPanel extends AbstractColorChooserPanel {
JToggleButton redCrayon;
JToggleButton yellowCrayon;
JToggleButton greenCrayon;
JToggleButton blueCrayon;
public CrayonPanel() {
super();
}
public void updateChooser() {
Color color = getColorFromModel();
if (color.equals(Color.red)) {
redCrayon.setSelected(true);
} else if (color.equals(Color.yellow)) {
yellowCrayon.setSelected(true);
} else if (color.equals(Color.green)) {
greenCrayon.setSelected(true);
} else if (color.equals(Color.blue)) {
blueCrayon.setSelected(true);
}
}
protected void buildChooser() {
setLayout(new GridLayout(0, 1));
CrayonListener cl = new CrayonListener();
ButtonGroup boxOfCrayons = new ButtonGroup();
Border border = BorderFactory.createEmptyBorder(4,4,4,4);
redCrayon = new JToggleButton(new ImageIcon("images/red.gif"));
redCrayon.setActionCommand("red");
redCrayon.addActionListener(cl);
redCrayon.setBorder(border);
boxOfCrayons.add(redCrayon);
add(redCrayon);
yellowCrayon = new JToggleButton(new ImageIcon("images/yellow.gif"));
yellowCrayon.setActionCommand("yellow");
yellowCrayon.addActionListener(cl);
yellowCrayon.setBorder(border);
boxOfCrayons.add(yellowCrayon);
add(yellowCrayon);
greenCrayon = new JToggleButton(new ImageIcon("images/green.gif"));
greenCrayon.setActionCommand("green");
greenCrayon.addActionListener(cl);
greenCrayon.setBorder(border);
boxOfCrayons.add(greenCrayon);
add(greenCrayon);
blueCrayon = new JToggleButton(new ImageIcon("images/blue.gif"));
blueCrayon.setActionCommand("blue");
blueCrayon.addActionListener(cl);
blueCrayon.setBorder(border);
boxOfCrayons.add(blueCrayon);
add(blueCrayon);
}
class CrayonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Color newColor = null;
JToggleButton source = (JToggleButton)e.getSource();
if (source.getActionCommand().equals("green"))
newColor = Color.green;
else if (source.getActionCommand().equals("red"))
newColor = Color.red;
else if (source.getActionCommand().equals("yellow"))
newColor = Color.yellow;
else if (source.getActionCommand().equals("blue"))
newColor = Color.blue;
getColorSelectionModel().setSelectedColor(newColor);
}
}
public String getDisplayName() {
return "Crayons";
}
public Icon getSmallDisplayIcon() {
return null;
}
public Icon getLargeDisplayIcon() {
return null;
}
}
|