Jtree Aufbau

Status
Nicht offen für weitere Antworten.

aemik

Bekanntes Mitglied
Hallo,

habe mich ein wenig mit dem JTree beschäftigt und hätte ein paar fragen dazu.

Ich habe eine paar Objekte die einem einem JTree dargestellt werden sollen.
Das ist soweit kein Problem.

Welches Interface benutzt ich am besten für das JTree wenn sich die Daten regelmäßig ändern und ich den Baum aktuell halten muss?

Welchen Listener brauch ich wenn ich das Ereignis bekommen will das ausgelöst wird wenn auf eine Komponente im Jtree klicke?

treeKnoten = new DefaultMutableTreeNode("Root");
treeModel = new TreeModelEintrag(treeKnoten);
tree = new JTree(treeModel);
treeRahmen = new JScrollPane(tree);

Mein treeModel ist derzeit ein DefaultTreeModel. Was das DefaultMutableTreeNode soll ist mir nicht so ganz klar.

Welche Klassen bzw. Interfaces benutz ich am besten für mein Vorhaben???


Danke
aemik
 
Ein Interface, das externe Daten mit einem Baum abgleicht ist mir nicht bekannt. Wenn irgendwo ein Listener ist, der auf Datenänderungen reagiert und den Baum ändert, kann ich nur sagen: treeModel.insertNodeInto() benutzen statt DefaultMutableTreeNode.add() um neue Nodes einzufügen, weil dann die Listener auf dem TreeModel gleifen.

Das mit dem Klick auf den Knoten: ich habe bisher mouseClicked auf dem JTree ausgewertet und mit jTree.getPathForLocation(event.getX(), event.getY()) herausgefunden ob und welcher knoten angeklickt wurde.

DefaultMutableTreeNode ist für den Inhalt eines Knotens zuständig. Da befindet sich das z.B. userObject. Ich habe bisher immer diese Klasse ableiten und erweitern müssen.
 
Welches Interface benutzt ich am besten für das JTree wenn sich die Daten regelmäßig ändern und ich den Baum aktuell halten muss?

Wenn sich die Daten ändern, muss der Tree aktualisiert werden. Wie man das macht, hängt davon ab, wie die Daten repräsentiert sind.

Welchen Listener brauch ich wenn ich das Ereignis bekommen will das ausgelöst wird wenn auf eine Komponente im Jtree klicke?
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/event/TreeSelectionListener.html

Mein treeModel ist derzeit ein DefaultTreeModel. Was das DefaultMutableTreeNode soll ist mir nicht so ganz klar.

TreeNode ist ein interface, und DefaultMutableTreeNode eine implementierung davon ( ???:L )
 
doch gibts, wieso nicht?

http://java.sun.com/javase/6/docs/api/javax/swing/tree/DefaultTreeModel.html#fireTreeNodesChanged(java.lang.Object, java.lang.Object[], int[], java.lang.Object[])
 
Ja, sowas gibt's im DefaultTreeModel. Man kann sich aber auch ein eigenes TreeModel schreiben und diese Funktionalität anbieten. TreeModel ist ja auch nur ein Interface.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben