Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

TreeCellRenderer malfunction :(

Empfohlene Antworten

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.

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

- 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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.