00001
00002
00003
00004 package DisplayGUI;
00005
00006 import javax.swing.AbstractCellEditor;
00007 import javax.swing.table.TableCellEditor;
00008 import javax.swing.JButton;
00009 import javax.swing.JColorChooser;
00010 import javax.swing.JDialog;
00011 import javax.swing.JTable;
00012 import java.awt.Color;
00013 import java.awt.Component;
00014 import java.awt.event.ActionEvent;
00015 import java.awt.event.ActionListener;
00016
00017 public class ColorEditor extends AbstractCellEditor
00018 implements TableCellEditor,
00019 ActionListener {
00020 Color currentColor;
00021 JButton button;
00022 JColorChooser colorChooser;
00023 JDialog dialog;
00024 protected static final String EDIT = "edit";
00025
00026 public ColorEditor() {
00027
00028
00029
00030
00031 button = new JButton();
00032 button.setActionCommand(EDIT);
00033 button.addActionListener(this);
00034 button.setBorderPainted(false);
00035
00036
00037 colorChooser = new JColorChooser();
00038 dialog = JColorChooser.createDialog(button,
00039 "Pick a Color",
00040 true,
00041 colorChooser,
00042 this,
00043 null);
00044 }
00045
00050 public void actionPerformed(ActionEvent e) {
00051 if (EDIT.equals(e.getActionCommand())) {
00052
00053
00054 button.setBackground(currentColor);
00055 colorChooser.setColor(currentColor);
00056 dialog.setVisible(true);
00057
00058
00059 fireEditingStopped();
00060
00061 } else {
00062 currentColor = colorChooser.getColor();
00063 }
00064 }
00065
00066
00067 public Object getCellEditorValue() {
00068 return currentColor;
00069 }
00070
00071
00072 public Component getTableCellEditorComponent(JTable table,
00073 Object value,
00074 boolean isSelected,
00075 int row,
00076 int column) {
00077 currentColor = (Color)value;
00078 return button;
00079 }
00080 }
00081