ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
384
384
EMPFEHLEN
-
Hi Leute,
habe einen Tree welcher bestimmte Äste ausgeklappt hat und auch bestimmte Elemente selektiert hat. Jetzt wollte ich gern nachdem ich das Model neu geladen habe, also neu gesetzt habe die gleichen Elemente wieder Selektieren und Ausklappen. Hatte gedacht das Überschreiben der HashCode und equals Methoden in der abgeleiteten DefaultMutableTreeNode Klasse würde reichen aber anscheinend müsste ich auch die in der TreeNode überschreiben nur weiß ich nicht wie man diese in die JTree einbettet.
Ne Idee?
Gruß Jan
-
Howdie.
Als ich vor ein paar Jahren einen Explorer geschrieben hab, stand ich vor dem gleichen Problem. Damals hab ich keine Lösung gefunden, wie dem mit JTree-eigenen Mitteln beizukommen ist. Ich habe schließlich die gewünschten (selektierten) Nodes in einer Collection gespeichert und beim Reload des Models neu selektiert und ausgeklappt. Vielleicht gibts da inzwischen auch schönere Lösungen, aber es ist eine Option.
@TreeNode überschreiben:
TreeNode ist ein Interface, also kannst du die Methoden nicht überschreiben, sondern nur implementieren. DefaultMutableTreeNodes implementieren dieses Interface und bedienen die entsprechend geforderten Methoden bereits. Also was auch immer du genau damit erreichen willst, wenn du in deiner abgeleiteten Klasse bereits equals() und hashCode() überschrieben hast, hast du das damit auch im TreeNode getan."A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
-
Hm, hatte ich auch schon überlegt aber durch den ganzen Baum zu itarieren find ich ein bisschen unperformant und kompliziert. Aber ich lass das ganz erst mal raus, wenns nicht anders geht werd ich es so machen.
Es geht ja auch um TreePath und nicht um TreeNode das ja expand sich auf TreePath oder einen Index bezieht.
Gruß Jan
-
Erstmal: Du hattest im ersten Post TreeNode geschrieben, daher bin ich da überhaupt drauf eingegangen....
Also iteriert habe ich bei der Reselektion nichts. Wenn du einen DefaultMutableTreeNode hast, kannst du über die Methode getPath() den Objekt-Pfad auslesen in Form eines Object-Array. Hiermit kannst du einfach ein TreePath-Objekt erzeugen. Konkret:
Damit kannst du recht einfach wieder selektieren und ein/ausklappen.
Genau kann ichs dir nicht sagen, da ich den Code momentan nicht mehr vorliegen habe. Ich finds auch nicht die schönste Lösung, aber in der Not...
Gruß und viel Erfolg
miffi
///// edit
Sorry, ich Depp hab grad zum ersten Mal den Titel deines Threads bewusst gelesen. Daher geh ich mal davon aus, dass ich dir hier nichts Neues erzähle die ganze Zeit. Jetzt macht auch die Aussage mit hashCode() und equals() Sinn :P
Hab jetzt grad nochmal mein Explorer-Projekt rausgekramt. Und da funktioniert setSelectionPath() auch nach einem Reload des Models. Bei mir werden allerdings auch die selben (Daten-)Objekte benutzt wie vor dem Reload. Kann es sein, dass du im Model komplett neue Objekte erzeugst? Dann stimmen die vom Objekt bereits implementierten hashCode()-, equals()- und toString()-Methoden natürlich nicht mehr...Geändert von miffi (11.10.10 um 15:11 Uhr)
"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
-
Ja ich erzeuge neue Objekte aber auch dort überschreibe ich schon die genannten Methoden, da diese Vorgehen öfters vorkommt. So funktionieren dann halt immer noch die ComboBoxen zum Beispiel. Bisher hatte das alles wunderbar funktioniert nur stellt sich halt das TreeModel hier etwas quer.
Ähnliche Themen
-
Jtree nicht sichtbar im Browser
Von TriipaxX im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 06.01.10, 02:55 -
JTree Fehler den ich nicht finde
Von skizZ im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 14.06.09, 19:00 -
JTree aktualisiert nicht
Von LosPaFFos im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 05.12.07, 20:19 -
Verwirrung: Build-Release funktioniert nicht mehr, Debug funktioniert
Von Jobless im Forum JavaAntworten: 1Letzter Beitrag: 15.01.07, 15:58 -
Funktion IE/Firefox - funktioniert/funktioniert nicht
Von SixDark im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 02.03.06, 00:26





Zitieren
Login





