Ajuda com CellRenderer, ele pinta toda coluna ao inves de so a com o valor

E ai pessoal

e o seguinte fiz um CellRenderer ainda nao entendendo muito bem como e que ele funciona…

eu queria que ele quando encontrasse uma celula com o valor “1”(String) mudasse o BackGround para Azul.
mas o meu nao faz isso. ele muda a cor de todas as celulas da coluna que voce clicar depois de inserir 1 em qq uma daquela coluna.
outra coisa e que ele pinta tudo o numero e o fundo de azul e nao vejo mais o numero.

como resolver isso ?

[code]
package TableModel;

import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.border.Border;
import javax.swing.table.TableCellRenderer;
import java.awt.Color;
import java.awt.Component;
import javax.swing.table.DefaultTableCellRenderer;

public class ColorRenderer extends DefaultTableCellRenderer
{
public Component getTableCellRendererComponent
(
JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column
)
{

	Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
	
if (value != null)
{
	
	if (value.equals("1"))
	{

		super.setBackground(Color.blue);
		return this;
	}
	else
	{
		return this;
	}
}
else
{
	return c;
}
}

}[/code]

sei que deve ser bobo mas estou com problemas serios de entender como funciona a JTable por dentro.

Pq vc está utilizando super nas suas chamadas de método? Vc está herdadando de DefaultCellRenderer, use os métodos sem o super.

Tenta fazer

c.setBackground( Color.blue )

Ai ele vai pegar apenas o componente obtido…

Não tive tempo de ler o código com calma…

Até mais!

Era isso mesmo…

Valeu !

Que bom que deu certo!

Até mais!