# JTable Farbe einer Zeile ändern



## nusm2000 (9. Mai 2011)

Guten Tag,

habe eine Frage, ich habe ien Jtable, und in der habe ich beim Laden der Tabelle alle Zeilen auf grau gesetzt, und jetzt möchte ich wenn ich auf eine Zeile klicke das sich die Farbe ändert, und zwar dauerhaft, wenn ich in eine andere Zeile gehe das die Farbe der Zeile trotzdem erhalten bleibt...
hat jemand eine Idee?

Mfg


----------



## vfl_freak (9. Mai 2011)

Moin,

ich denke, Du suchst einen Cellrenderer !

Gruß
Klaus


----------



## MiMi (9. Mai 2011)

Stichwort: Cell Renderer um die Farbe der Zeilen einzeln anzupassen. Dann wirst du noch eine variable setzen muessen fuer die jeweilige Zeile ob diese selectiert ist oder nicht.

Ansonsten keine Ahnung was du schon hast, meine Kristallkugel ist noch im Urlaub ^^ (d.h. ein wenig Code in java-tags waere gut  )


----------



## nusm2000 (9. Mai 2011)

Hallo,

sorry, habs vergessen, ich habe schon ein Cellrenderer, damit werden ja alle Zeilen gerändert...
aber ich brauche eine Funktion die bei einer Doppelangeklickter Zeile die Farbe ändert.  das muss jetzt nur blos dauerharft sein...


----------



## nusm2000 (9. Mai 2011)

PS: das mit dem isSelected habe ich auch gemacht, aber dann ändert sich die Farbe ja nur wenn es selected ist dann geht es wieder in den Ursprungsfarbe zurück...


----------



## Akeshihiro (9. Mai 2011)

Dann würde ich sagen, solltest du die Zeilennummern in einer Liste speichern und diese dann beim Färben auch nutzen.


----------



## MiMi (9. Mai 2011)

Wie ich bereits sagte, du wirst eine extra Variable brauchen um zu sehen ob die Zeile selektiert ist, um diese dann entsprechend Faerben zu koennen.


----------



## nusm2000 (9. Mai 2011)

PS: eigentlich will ich so eine Art Emailklient analogie nachprogrammieren..., wenn neue Email ankommen sind die als Fettschrift markiert, wenn ich eine anklicke/lese, dann wird sie normal markiert... nur will ich das mit Farben machen... nicht angeklickt zb. blau, angeklickt grün...


----------



## MiMi (9. Mai 2011)

Na dann speichere in deinem email objekt ob sie gelesen ist oder nicht, im Cellrenderer schaust du dann nach dem Objekt der Zeile und je nach Status wird die Farbe auch angepasst.


----------



## nusm2000 (9. Mai 2011)

ja das mache ich ja auch, das geht ja auch... aber, wie mache ich es wenn ich per Doppelklick die Farbe der Zeile ändere**** im Cellrenderer, mache ich es per isSelected, aber wenn ich mit der Maus eine andere Zeile gehe, dann bleibt die ursprüngliche Farbe zurück... habe versucht die Zeilennummer zu speichern, das geht alles nicht...


----------



## MiMi (9. Mai 2011)

Mal vom doppelklick abgesehen, du kannst doch beim isSelected schauen welche Zeilennummer es ist, und dir das (email) Objekt in der Zeile aufholen. Diesem Objekt sagst du dann, selected =!selected um es zu tauschen. 
In der renderer Methode (weiss gerade nicht wie sie heisst, dort wo man jede einzelne Zeile faerben kann) schaust du dann ob das Objekt in der Zeile selected ist, wenn ja, Farbe aendern.


----------



## Akeshihiro (9. Mai 2011)

Das müsste die Methode getTableCellRendererComponent sein, sie erhält ja die Zeile, Spalte und noch einiges mehr.


----------

