Zum Inhalt springen

TreeCellRenderer malfunction :(


Empfohlene Beiträge

Geschrieben

Hallo, Jungs & Mädels ... ich hab jetz mal ne`harte nuss ... hab des schon 2 leuten aus meiner klasse gezeigt & einem aus meiner firma ... und bis jetz sind wir alle so schlau wie vorher:

also ich hab nen jtree, mit eigenen treenodes und die ham eigene userobjects. in den userobjects speicher ich den namen und das object das dazugehört. die nodes repräsentieren ne ordnerstruktur, also entweder ne datei oder nen ordner. die problematik war jetz, dass das komplette laden von dem baum (isn zugriff auf ein svn; sowas wie cvs) ******* lange gedauert hat, also war der wunsch da, dass die einzelnen unterordner erst auf anklicken nachgeladen werdn. jetz hat der benutzer aber keine möglichkeit zwischen nodes und leafes zu unterscheiden, weil ja für den jtree ein node ohne children automatisch n`leaf is. also hab ich mir nen treecellrenderer gebaut, der mir, jenachdem obs n`ordner oder ne datei is, das imageicon so setzt, dasses fürn benutzer ausschaut wie n`node:


if(((MyTreeUserObject)node.getUserObject()).getEntry().getKind() == SVNNodeKind.DIR){

	System.out.println(node.toString() + " is of type [ DIR ]");

	this.setLeafIcon(getDefaultClosedIcon());

} else if(((MyTreeUserObject)node.getUserObject()).getEntry().getKind() == SVNNodeKind.FILE){

	System.out.println(node.toString() + " is of type [ FILE ]");

	this.setLeafIcon(getDefaultLeafIcon());

}

jetz isses nur so, dass der mir die icons falsch setzt. also der kennt zwar einwandfrei den typ von dem knoten (liest ihn einwandfrei aus), aber er setzt trotzdem (manchmal) die icons falsch wenn man im baum rumklickt (und nacheinander zwei unterschiedliche nodekinds anklickt)...

was meine vermutung is, dass der NACH dem eigentlichen knoten noch nen anderen knoten verarbeitet, und den, wenn von nem anderen typ, dann im eigentlichen knoten setzt.

Geschrieben

hm .. anscheinend kann mit der beschreibung so keiner was anfangen ... hab

jetz einfach mal ein beispielprojekt angehängt, das das problem darstellt ..

einfach die main() in JTree_CellRenderProblemTest.java ausführen & im baum

rumklicken .. hab gestern da mal reindebugged und komischerweise läufter durch

den renderer 4x durch .. kA wieso... ich werd einfach net schlau draus.

vllt. wird ja jemand von euch schlau draus ...

mfg, Sebastian

btw.: alternativlösungen für das problem das ich lösen will (SVN), sind net hilfreich, das is mein abschlussprojekt & meine firma will was eigenes ;(

testing.zip

Geschrieben

- hat sich erledigt ... für alle die das forum grad nach der lösung durchsuchen: es lag am superkonstruktor .. der baut das ImageIcon schon in der elternklasse auf ... einfach super() erst direkt vorm return aufrufen

--- kann geschlossen werden :P

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...