Hallo, ich habe mir gestern das JTable Tutorial von Beni durchgelesen und habe mir dort seinen "MyTableCellRenderer" abgeguckt. Ich brauche nun einen CellRenderer der in Abhängigkeit des Wertes "unsichtbar" eines Feld-Objekts (dem aus der Tabellenzelle) die einzelne Zelle farbig markiert, in meinem Beispiel hab ich das gemacht indem ich die Schriftfarbe einfach grau gesetzt hab. Ich habe in der Tabelle ne Menge Daten von denen einige dieses "unsichtbar" Flag haben, allerdings wird immer nur exakt das erste mit diesem Flag entsprechend markiert. Dazu hab ich nen kleinen Screenshot:
[EDIT]Auf diesem Bild haben alle Elemente außer "p_test5" dieses "unsichtbar" Flag, aber nur das erste Vorkommende wird markiert.
Das ist mein CellRenderer:
Ich habe übrigens noch ein zweites Problem. Wenn ich eine Zelle auswähle wird automatisch die gesamte Zeile mitmarkiert. (Siehe Bild) Kann man das abschalten?
Danke im Voraus
[EDIT]Auf diesem Bild haben alle Elemente außer "p_test5" dieses "unsichtbar" Flag, aber nur das erste Vorkommende wird markiert.
Das ist mein CellRenderer:
Code:
public class MyTableCellRenderer extends DefaultTableCellRenderer{
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
Feld feld = (Feld) value;
if (feld.getName().equals("") == false) {
// Anzuzeigender Text
setText(feld.getName();
// Unsichtbar - Hintergrundfarbe hellgrau
if (feld.getUnsichtbar())
setForeground(Color.LIGHT_GRAY);
else
setForeground(Color.BLACK); //Ohne explizites neusetzen werden ALLE Zellen grau!!
}
else
setText("");
return this;
}
}
Ich habe übrigens noch ein zweites Problem. Wenn ich eine Zelle auswähle wird automatisch die gesamte Zeile mitmarkiert. (Siehe Bild) Kann man das abschalten?
Danke im Voraus