JTree zur richtigen Zeit aktualisieren.

deepy

Mitglied
Hallo ich habe einen Jtree. Wenn ich ein Element des Trees auswähle und das ausgewählte Objekt über nen Dialog bearbeite möchte, möchte ich nach Abschließen des Speichern des Objekts, dass der Jtree neu geladen wird:
schematisch mein quelltext:
Java:
new verändereEinenKnoten(); //ist Jframe
tree.repaint();
problem hierbei ist, dass der JTree hier schon vor dem Schließen und Speichern im Frame neu gezeichnet wird. Wie kann man dieses Verhalten steuern?
 
Verwende z.B. DefaultTreeModel als Model für Dein JTree, dann kannst Du bei Änderung einzelner Objekte per fireTreeNodesChanged den JTree darüber informieren, dass ich entsprechender Knoten geändert hat und musst nicht den Baum neu aufbauen oder mit anderen Tricks arbeiten.
 
So einfach ist das leider nicht. ich bearbeite im Jtree nicht das obejtk direkt, im Jtree steht nur ein bezeichner (string), da das Objekt sehr umfangreich ist und sehr viel funktionalität enthält. Es soll auch nur über den "bearbeiten"-Jframe bearbeitet werden. Das defaultTreeModel soll nach dem bearbeiten komplett neu geschrieben werden. dazu habe ich auch einen aufruf :
Java:
new verändereEinenKnoten(); //ist Jframe
 updateData(); //Schreibt das Treemodelneu
tree.setModel(dtm);
tree.repaint();
 
Wenn Du ein komplett neues TreeModel setzt, aktualisiert sich der Baum von alleine, wenn Du im bestehenden Model etwas änderst, sollte i.d.R. das repaint() auf tree ausreichen.

Poste doch mal ein bisschen Code als KSKB bei dem das Problem auftritt, vielleicht hängt's ja an einer ganz anderen Stelle.
 

Neue Themen


Zurück
Oben