# JTable und selectioncolor



## Planetenkrieger (26. Feb 2009)

hallo ihr da,

ich hab für meine jtable einen tablecellrenderer geschrieben, damit sich die hintergrundfarbe in jeder 2. zeile ändert. wenn ich der table den renderer zuweis, dann sieht man meine selektion nicht mehr.
muss ich jetzt n selectionlistener schreiben? oder kann ich des im tablecellrenderer direkt implementieren...oder wie muss ich das machen?

hier noch code:


```
import java.awt.Color;
import java.awt.Component;

import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;

public class TableCellRendererForStartFrame extends DefaultTableCellRenderer implements TableCellRenderer
{

	@Override
	public Component getTableCellRendererComponent(JTable table, Object value,
			boolean isSelected, boolean hasFocus, int row, int col)
	{
		if(row%2==0)
		{
			setBackground(new Color(255, 255, 200));
		}
		else
		{
			setBackground(Color.WHITE);
		}
		table.setSelectionBackground(new Color(255, 0, 0));
		setText((value == null) ? "" : value.toString());
		return this;
	}
}
```

und in der anderen klasse, in der sich die table befindet


```
table.setDefaultRenderer(Object.class, new TableCellRendererForStartFrame());
```

grüßle


----------



## Ebenius (26. Feb 2009)

In so einem Fall empfiehlt es sich stets, den Quelltext der Standard-Implementierung anzusehen: DefaultTableCellRenderer (ab Zeile 149). Dann wird alles klar.

Ebenius


----------



## Planetenkrieger (27. Feb 2009)

danke für den link, habs hinbekommen. musste nur, wie du schon geschrieben hast, ab 149, die methode richtig überschreiben.

grüßle


----------

