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: }