# JTree mit eigenem TreeModel



## Guadrion (12. Mai 2010)

Hi Leute,
ich hab mir einen JTree mit eigenem TreeModel geschrieben, welcher meine Datenstruktur abbildet. Wenn ich nun allerdings Objekte an die Root per DefaultMutableTreeNode dynamisch anhänge ändert sich die Anzeige nicht. Ich hab im Internet iwo gesehen dass es eine Funktion reload() gibt vom DefaultTreeModel, allerdings hab ich mein eigenes von TreeModel abgeleitet und hab deshalb diese Funktion nicht. Ich hab auch schon versucht den Root Knoten(der nun ein Kind hat) wieder in das model zu stopfen und den baum mit dem neuen Model wiede rzu initialisieren, das klappt aber auch nicht. Wie kann ich am elegantesten Knoten einfügen, so dass die Anzeige aktualisiert wird?


----------



## Artorius (12. Mai 2010)

Hi!
Schau dir doch einfach mal die Quelldatei vom DefaultTreeModel an (zum Beispiel hier:http://developer.classpath.org/doc/javax/swing/tree/DefaultTreeModel-source.html), dann kannst du die reload Methode auch nachbauen.

*grüssle*


----------



## Guadrion (12. Mai 2010)

Okay vieln Dank! sieht ja mal gar nicht schlecht aus. aber muss ich dass immer nachimplementieren wenn ich en eigenes TreeModel schreib?
gibts da keine andere möglichkeit?


----------



## Artorius (12. Mai 2010)

Nun, wenn du alles von Grund auf selbst baust, d.h. die TreeModel Schnittstelle selbst implementiert, bleibt dir nichts anderes übrig. Dafür hast du dann auch ein TreeModel, welches perfekt für deine Daten passt. Natürlich kann man Methoden, die oft bei den Eigenimplenetationen benötigt werden, auslagern, oder sich eine abstrakte TreeModel-Klasse erstellen, die schon alle Basismethoden enthält..

Oder prinzipiell hat man ja auch die Möglichkeit, das DefaultTreeModel als Grundlage zu nehmen und zu erweitern. Dann hat man schon alle Funktionen, muss aber natürlich Arbeit reinstecken und es anzupassen und man schleppt vielleicht viele Sachen mit, die gar nicht benötigt werden.


Wie mans macht, muss jeder, auch aufgrund der Daten, für sich selbst entscheiden..



*grüssle*


----------

