Hi zusammen,
ich habe folgendes Anliegen.
Ein JTable ist gefüllt mit mehreren Zeilen + Spalten von Daten. Nun möchte ich die angewählte Zeile farblich vom Rest abheben. Zusätzlich soll die angewählte Zelle innerhalb dieser Zeile eine andere Farbe bekommen.
Wird eine neue Zeile (+ Zelle) angeklickt, soll die alte Zeile wieder ihre "Ursprungs-Hintergundfarbe" bekommen.
Hier ist mein custom TableCellRender. Da ich Cell-selection habe funktioniert der im Moment nur bei einer selektierten Zelle und läßt die Zeile unverändert.
ich habe folgendes Anliegen.
Ein JTable ist gefüllt mit mehreren Zeilen + Spalten von Daten. Nun möchte ich die angewählte Zeile farblich vom Rest abheben. Zusätzlich soll die angewählte Zelle innerhalb dieser Zeile eine andere Farbe bekommen.
Wird eine neue Zeile (+ Zelle) angeklickt, soll die alte Zeile wieder ihre "Ursprungs-Hintergundfarbe" bekommen.
Hier ist mein custom TableCellRender. Da ich Cell-selection habe funktioniert der im Moment nur bei einer selektierten Zelle und läßt die Zeile unverändert.
Java:
public class MyTableCellRender extends DefaultTableCellRenderer
{
private Vector<Integer> lineColors;
private Color[] segmentColors = new Color[2];
private int cIdent = 0;
public MyTableCellRender()
{
segmentColors[0] = new Color(240,240,240);
segmentColors[1] = new Color(220,220,220);
}
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 (isSelected)
{
c.setBackground(new Color(231,243,253));
// System.out.println("TableCellRender: " + row);
}
else
{
cIdent = lineColors.get(row);
c.setBackground(segmentColors[cIdent]);
}
return c;
}
public void updateLineColor(Vector<Integer> lineColorVector)
{
lineColors = lineColorVector;
}
}