SWT - Table Zellenfarbe ändern

Conni

Grünschnabel
Hallo alle miteinander!

Ich hab ein kleines Problem.
Ich habe zwei Tabellen und in der ersten Tabelle steht (in den Zellen aufgeteilt) der Originalstring. In der zweiten Tabelle steht (wenns gut läuft) der gleiche String aufgeteilt auf die einzelnen Zellen (sprich: jedes Wort in einer Zelle in der Zeile).
Allerdings gibt es manchmal Abweichungen. Daher lassen ich die Jeweilige Zelle der 1. Tabelle mit der Zelle der 2. Tabelle überprüfen. Es wird auch erkannt, dass der Inhalt unterschiedlich ist. Wenn das dann aber so ist, möchte ich gerne diese Zelle farbig markieren. Und das geht im Moment nicht. Im Moment wird automatisch die ganze Zeile farbig markiert und das ist leider nicht Sinn der Sache.

So sieht der Code aus:

Code:
private void checkDifferences(TableItem ti) {
TableItem original = this.tableOriginal.getItem(0);

int limit = 6;
for(int i = 1; i < limit; i++) {
if(!original.getText(i).equals(ti.getText(i))) {
ti.setBackground(SWTResourceManager.getColor(255, 0, 0));
}
}
}
Hat einer von Euch eine Idee, wie ich mein Problem lösen kann?

LG, Conni
 
Zuletzt bearbeitet:
lass die funktion checkDifferences n boolean wert zurückgeben und setze den TableCellRenderer neu.

public class TabellenRenderer extends DefaultTableCellRenderer{



public TabellenRendererErgebnis()
{

}

@Override
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)
setBackground(UIManager.getColor("Table.selectionBackground"));
else if(hasFocus)
setBackground(UIManager.getColor("Table.focusCellBackground"));

else if( !checkDifferences)
{
setBackground(clrHintergrund);
}
else
setBackground(UIManager.getColor("Table.background"));
return this;
}

}

damit sollte das eigentlich funktionieren
 
Vielen Dank Karl, für Deine schnelle Antwort.

Du hast sicherlich Recht, dass wäre genau das Richtige für eine JTable gewesen, aber ich arbeite nicht mit Swing, sondern mit SWT und das ist leider nicht kompatibel. (Soweit ich das verstanden habe!)

Ich Blindfisch hab aber die Antwort selbst gefunden, denn es gibt für das TableItem die Methode setForeground(int index, Color color). Die macht genau das, was ich wollte.
 
Zurück