WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   DefaultTableCellRenderer ?? (http://www.wcm.at/forum/showthread.php?t=174767)

Frankster 25.09.2005 22:00

DefaultTableCellRenderer ??
 
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

itsme 26.09.2005 09:20

<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

Frankster 26.09.2005 09:40

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

itsme 26.09.2005 10:21

dann nimmst halt nur diesen teil:

...

table.setSelectionBackground(<DieFarbeDieDuWillst> );
table.revalidate();

...

Frankster 26.09.2005 10:48

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

itsme 26.09.2005 12:49

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>

Frankster 26.09.2005 23:10

Hi!

Jetzt hab ichs überrissen ;-)

Ist eh voll simple gewesen *g*

Danke

Farkarich 27.09.2005 14:50

renderer
 
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...

itsme 27.09.2005 16:43

naja, bin auch kein guru ;)

Frankster 29.09.2005 23:21

Wie kann ich dem Renderer beibringen, dass er auf Rechtsklicks auch reagiert ?


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag