![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() Registriert seit: 13.07.2002
Alter: 44
Beiträge: 242
|
![]() Hi!
Wenn ich zur Laufzeit die Hintergrundfarbe einer Zeile in einer JTable ändern möchte, funktioniert dies mit dem Renderer oder muss ich da einen Listener verwenden ? Weil so viel ich mitbekommen habe, funkt der Renderer nur bei isSelected oder hasFocus. Und das hats bei mir ja nicht. Es soll zu einer bestimmten Zeit die Hintergrundefarbe verändert werden. Am besten durch einen Methodenaufruf, oder mal Testhalber durch einen Buttonklick. Bei mir wär das immer nur die 1. Zeile Vielen Dank im voraus Frankster |
![]() |
![]() |
![]() |
#2 |
Jr. Member
![]() Registriert seit: 11.07.2004
Beiträge: 56
|
![]() <Codesnippet>
. . public boolean isCellEditable(int row, int col){ col_selected = table.getSelectedColumn(); row_selected = table.getSelectedRow(); if (((String)getValueAt(row_selected, 11)).equalsIgnoreCase("Y")) table.setSelectionBackground(Color.red); else table.setSelectionBackground(Color.green); table.revalidate(); if ((col == -1) || (col > getVisibleColumns())) { return false; } else { return true; }} . . hoffe, das hilft dir weiter |
![]() |
![]() |
![]() |
#3 |
Veteran
![]() Registriert seit: 13.07.2002
Alter: 44
Beiträge: 242
|
![]() Und wann wird das per Buttonklick aufgerufen ?
Ich verändere ja den Inhalt nicht, sondern nur die Hintergrundfarbe Und wenn ich die Zelle editierbar machen, kann man ja den Inhalt der Zelle auch ändern und dass will ich ja nicht |
![]() |
![]() |
![]() |
#4 |
Jr. Member
![]() Registriert seit: 11.07.2004
Beiträge: 56
|
![]() dann nimmst halt nur diesen teil:
... table.setSelectionBackground(<DieFarbeDieDuWillst> ); table.revalidate(); ... |
![]() |
![]() |
![]() |
#5 |
Veteran
![]() Registriert seit: 13.07.2002
Alter: 44
Beiträge: 242
|
![]() Bitte verzeih mir meine nervenden Fragen
![]() Aber diese JTable macht mich noch wahnsinnig, was ich mit derer schon alles durchgemacht habe ;-) Ich würde ja nur gerne die 1. Reihe rot färben und nicht die komplette JTable. Daher weiss ich nicht ob man da einen CellRender braucht oder nicht. weil wenn ich sage: tabe.setBackground(Color.green); Ist der Hintergrund der kompletten Table grün, und dass will ich nicht |
![]() |
![]() |
![]() |
#6 |
Jr. Member
![]() Registriert seit: 11.07.2004
Beiträge: 56
|
![]() darum habe ich auch zuerst den codeteil des tablemodels gepostet.
das kannst du an deine bedürfnisse anpassen, z.b. ... if table.getSelectedRow()= <ZuFärbendeZeile> then <farbe1> else <farbe2> ... damit färbst du die <ZuFärbendeZeile> mit <farbe1>, alle anderen mit <farbe2> |
![]() |
![]() |
![]() |
#7 |
Veteran
![]() Registriert seit: 13.07.2002
Alter: 44
Beiträge: 242
|
![]() Hi!
Jetzt hab ichs überrissen ;-) Ist eh voll simple gewesen *g* Danke |
![]() |
![]() |
![]() |
#8 |
Senior Member
![]() |
![]() sollte aber noch leichter gehen, du bekommst bei einer funktion eh mit welche row und welche column selektiert worden is...
dann ersparst dir das mit der table, sie mal in da javadoc welche methoden du implementieren musst.... is ned schwer... |
![]() |
![]() |
![]() |
#9 |
Jr. Member
![]() Registriert seit: 11.07.2004
Beiträge: 56
|
![]() naja, bin auch kein guru
![]() |
![]() |
![]() |
![]() |
#10 |
Veteran
![]() Registriert seit: 13.07.2002
Alter: 44
Beiträge: 242
|
![]() Wie kann ich dem Renderer beibringen, dass er auf Rechtsklicks auch reagiert ?
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|