Botao com colochooser em coluna da jtable

opa pessoal eu implementei meu tablecelrender fiz colocar um jbutton na coluna desejada.
mas nao consigo fazer abrir um jcolorchooser e depois mostrar o rgb na celula ou até mesmo pintar a celula da referente cor.

detalhe.
eu sei por o botao.
só falta fazer funcionar a acão dele
agradeço a ajuda.
abraços

oq o código que começo é esse.
mas tentei passar um botao com um action listner pro construtor da classe simple
ou criar o botão com o action lá dentro da classe simple e retornar ele.
e nao consegui.

public class tabela extends JFrame {

	public tabela() {
		String[][] dados = { { "", "" }, { "", "" } };
		String[] tit = { "nome", "botao" };
		JTable tabela = new JTable(dados, tit);
		tabela.getColumnModel().getColumn(1).setCellRenderer(new simple());
		JScrollPane pane = new JScrollPane(tabela);
		this.add(pane);
		this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
		setSize(200, 200);
		setVisible(true);

	}

	public static void main(String[] args) {
		new tabela();
	}

	class simple extends JButton implements TableCellRenderer {
		@Override
		public Component getTableCellRendererComponent(JTable arg0, Object arg1, boolean arg2, boolean arg3, int arg4, int arg5) {
			// TODO Auto-generated method stub
			return this;
		}
	}
}

algum link para exemplo?

tópicos para alterar a cor da célula da JTable:
http://www.guj.com.br/posts/list/124255.java
http://javafree.uol.com.br/forum/viewtopic.php?t=8833&highlight=jtable+cor+c%25E9lula
http://javafree.uol.com.br/forum/viewtopic.php?t=10350&highlight=jtable+cor+c%25E9lula

espero ter ajudado.

o ultimo link ajudou
vlw

Bom dia,

O código a seguir mostra uma maneira de fazer o que você deseja:


// Código obtido em:  http://www.java2s.com/Tutorial/Java/0240__Swing/ColorChooserEditor.htm
// Data 04/03/2013

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.AbstractCellEditor;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;

class ColorTableModel extends AbstractTableModel {
  Object rowData[][] = { { "1", Color.RED }, { "2", Color.BLUE }, { "3", Color.GREEN } };

  String columnNames[] = { "English", "Color" };

  public int getColumnCount() {
    return columnNames.length;
  }

  public String getColumnName(int column) {
    return columnNames[column];
  }

  public int getRowCount() {
    return rowData.length;
  }

  public Object getValueAt(int row, int column) {
    return rowData[row][column];
  }

  public Class getColumnClass(int column) {
    return (getValueAt(0, column).getClass());
  }

  public void setValueAt(Object value, int row, int column) {
    rowData[row][column] = value;
  }

  public boolean isCellEditable(int row, int column) {
    return (column != 0);
  }
}

class ColorChooserEditor extends AbstractCellEditor implements TableCellEditor {

  private JButton delegate = new JButton();

  Color savedColor;

  public ColorChooserEditor() {
    ActionListener actionListener = new ActionListener() {
      public void actionPerformed(ActionEvent actionEvent) {
        Color color = JColorChooser.showDialog(delegate, "Color Chooser", savedColor);
        ColorChooserEditor.this.changeColor(color);
      }
    };
    delegate.addActionListener(actionListener);
  }

  public Object getCellEditorValue() {
    return savedColor;
  }

  private void changeColor(Color color) {
    if (color != null) {
      savedColor = color;
      delegate.setBackground(color);
    }
  }

  public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected,
      int row, int column) {
    changeColor((Color) value);
    return delegate;
  }
}

public class ChooserTableSample {

  public static void main(String args[]) {
    JFrame frame = new JFrame("Editable Color Table");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    TableModel model = new ColorTableModel();
    JTable table = new JTable(model);

    TableColumn column = table.getColumnModel().getColumn(3);

    TableCellEditor editor = new ColorChooserEditor();
    column.setCellEditor(editor);

    JScrollPane scrollPane = new JScrollPane(table);
    frame.add(scrollPane, BorderLayout.CENTER);
    frame.setSize(400, 150);
    frame.setVisible(true);
  }
}

O uso do botão não ficou bom com o LookAndFeel que estou utilizando então alterei a classe ColorChooserEditor para usar um JPanel.

private class ColorChooserEditor extends AbstractCellEditor implements TableCellEditor {

	  Color cor;

	  public ColorChooserEditor() {}

	  public Object getCellEditorValue() {
	    return cor;
	  }

	  public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected,
	      int row, int column) {
			  
		  cor = JColorChooser.showDialog(null, "Color Chooser", cor);
		  
		  JPanel p = new JPanel();
		  p.setBackground(cor);
			  
	    return p;
	  }
		  
	}

Sei que para o seu caso já está resolvido mas estou deixando o código para quem “cair” aqui via Google.

Abraço.