01: import java.awt.*;
02: import java.beans.*;
03: import javax.swing.*;
04: import javax.swing.event.*;
05:
06: /**
07: A property editor for the Color type that uses a JColorChooser.
08: */
09: public class CustomColorEditor extends PropertyEditorSupport
10: {
11: public String getAsText()
12: {
13: return null;
14: }
15:
16: public boolean supportsCustomEditor()
17: {
18: return true;
19: }
20:
21: public Component getCustomEditor()
22: {
23: final JColorChooser chooser = new JColorChooser();
24: chooser.getSelectionModel().addChangeListener(
25: new ChangeListener()
26: {
27: public void stateChanged(ChangeEvent event)
28: {
29: setValue(chooser.getColor());
30: }
31: });
32: return chooser;
33: }
34:
35: public boolean isPaintable()
36: {
37: return true;
38: }
39:
40: public void paintValue(Graphics g, Rectangle boundingBox)
41: {
42: Graphics2D g2 = (Graphics2D) g;
43: Color color = (Color) getValue();
44: g2.setColor(color);
45: g2.fill(boundingBox);
46: g2.setColor(Color.BLACK);
47: g2.draw(boundingBox);
48: }
49: }