WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 25.09.2005, 22:00   #1
Frankster
Veteran
 
Registriert seit: 13.07.2002
Alter: 44
Beiträge: 242


Standard 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
Frankster ist offline   Mit Zitat antworten
Alt 26.09.2005, 09:20   #2
itsme
Jr. Member
 
Registriert seit: 11.07.2004
Beiträge: 56


Standard

<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
itsme ist offline   Mit Zitat antworten
Alt 26.09.2005, 09:40   #3
Frankster
Veteran
 
Registriert seit: 13.07.2002
Alter: 44
Beiträge: 242


Standard

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
Frankster ist offline   Mit Zitat antworten
Alt 26.09.2005, 10:21   #4
itsme
Jr. Member
 
Registriert seit: 11.07.2004
Beiträge: 56


Standard

dann nimmst halt nur diesen teil:

...

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

...
itsme ist offline   Mit Zitat antworten
Alt 26.09.2005, 10:48   #5
Frankster
Veteran
 
Registriert seit: 13.07.2002
Alter: 44
Beiträge: 242


Standard

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
Frankster ist offline   Mit Zitat antworten
Alt 26.09.2005, 12:49   #6
itsme
Jr. Member
 
Registriert seit: 11.07.2004
Beiträge: 56


Standard

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>
itsme ist offline   Mit Zitat antworten
Alt 26.09.2005, 23:10   #7
Frankster
Veteran
 
Registriert seit: 13.07.2002
Alter: 44
Beiträge: 242


Standard

Hi!

Jetzt hab ichs überrissen ;-)

Ist eh voll simple gewesen *g*

Danke
Frankster ist offline   Mit Zitat antworten
Alt 27.09.2005, 14:50   #8
Farkarich
Senior Member
 
Registriert seit: 19.09.2000
Alter: 40
Beiträge: 122


Farkarich eine Nachricht über ICQ schicken
Standard 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...
Farkarich ist offline   Mit Zitat antworten
Alt 27.09.2005, 16:43   #9
itsme
Jr. Member
 
Registriert seit: 11.07.2004
Beiträge: 56


Standard

naja, bin auch kein guru
itsme ist offline   Mit Zitat antworten
Alt 29.09.2005, 23:21   #10
Frankster
Veteran
 
Registriert seit: 13.07.2002
Alter: 44
Beiträge: 242


Standard

Wie kann ich dem Renderer beibringen, dass er auf Rechtsklicks auch reagiert ?
Frankster ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:23 Uhr.


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