leerer JTree

Status
Nicht offen für weitere Antworten.

MQue

Top Contributor
Hallo,


ich habe 2 JTrees, der eine ist ein vollständiger JTree mit einigen Nodes, der andere ist am Anfang leer,

wenn ich jetzt einen JButton drücke und am JTree mit den Nodes ein Node Selektiert ist, dann soll dieser selektierte Node (eigentlich der ganze Pfad bis zum selektierten Node) kopiert werden und in den zweiten, leeren Node eingefügt werden,

Ich hab da jetzt 2 Probleme:

1. wenn man einen leeren JTree erzeugt, dann sind ja da die vordefinierten Nodes im JTree und die bleiben auch, wenn
ich einen neuen Node hinzufüge, wie kann ich das machen, dass nur meine hinzugefügten Nodes sichtbar sind

2. kann ich einen selektieren Node mit allen seinen Parents klonen bzw. wie?


Wäre sehr dankbar für Hilfe in diese Richtung,

lg
 

André Uhres

Top Contributor
1. Setz einfach dein eigenes Model (sonst baut er das Demo Model).
2. Mit getSelectionPath bekommst du den Pfad mit allen Parents.
Mit TreePath#getPath bekommst du dann alle Komponenten im Pfad.
Die kannst du dann neu erzeugen (bzw. klonen) und dann neu einfügen.
Zum Klonen kannst du das Interface "Cloneable" implementieren: Minitutorial - Cloneable
 

Siassei

Bekanntes Mitglied
Hallo,

zu 2.) Clonen: Falls du die TreeNode von javax.swing.tree.DefaultMutableTreeNode ableitest.
Hier ist das Cloneable-Interface bereits Impl. und ein einfacher clone() Aufruf in deiner Node sollte ausreichen, um alle Parents zu kopieren.

zu 1.)
Nur als Beispiel :wink: JTree(TreeNode root) . Es gibt natürlich noch 1000 weitere Lösungsmöglichkeiten :wink:
 

André Uhres

Top Contributor
Siassei hat gesagt.:
zu 2.) Clonen: Falls du die TreeNode von javax.swing.tree.DefaultMutableTreeNode ableitest.
Hier ist das Cloneable-Interface bereits Impl. und ein einfacher clone() Aufruf in deiner Node sollte ausreichen, um alle Parents zu kopieren.
Das wäre ja schön, geht aber leider nicht:
public Object clone()
Overridden to make clone public. Returns a shallow copy of this node;
the new node has no parent or children and has a reference to the same user object, if any.


Siassei hat gesagt.:
zu 1.)
Nur als Beispiel :wink: JTree(TreeNode root)
JTree(TreeNode root) setzt ein DefaultTreeModel mit dem angegebenen Rootnode.
Geht also nicht, wenn du ein eigenes oder abgeleitetes Model benutzen willst.
 

MQue

Top Contributor
Super danke,

möchte ja nicht übermütig werden, aber lässt sich auch Drag&Drop "einfach" implementieren,

gibts da vielleicht ein Beispiel,

Vielen Dank,
 

Siassei

Bekanntes Mitglied
André Uhres hat gesagt.:
Das wäre ja schön, geht aber leider nicht:
public Object clone()
Overridden to make clone public. Returns a shallow copy of this node;
the new node has no parent or children and has a reference to the same user object, if any.
Upps. Wer hat diese bl... Implementierung erstellt? Na, jetzt weis ichs zumindestens. Danke.
 

MQue

Top Contributor
Mir ist nicht ganz klar wie ich den JTree erzeugen kann und dabei noch keinen Node setzte und erst wenn ich einen Button drücke, sollte ein Node zum JTree hinzugefügt werden:

Code:
DefaultTreeModel model = new DefaultTreeModel(new DefaultMutableTreeNode(""));   // einen leeren Node zum JTree hinzufügen
sodass man den JTree noch nicht sieht auf dem JPanel
mainTree = new JTree(model);    // leider funktioniert das nicht



// wenn ich dann einen JButton drücke, sollte der hinzugefügte Node dann sichtbar sein (und nur dieser)

if(e.getSource() == addBut) {                                           
            DefaultTreeModel model = (DefaultTreeModel) mainTree.getModel();
            DefaultMutableTreeNode newChild = new DefaultMutableTreeNode();
            newChild.setUserObject(new CheckBoxNode("Test_", false, "mainNodeName"));                        
            DefaultMutableTreeNode parent = (DefaultMutableTreeNode) selectedNode.getParent();    
            int index = parent.getIndex(selectedNode);
            model.insertNodeInto(newChild, parent, 0);
}


so in der Art, wenn ich das erste mal den Button drücke, dann sollte zu dem leeren JTree der erste Node hinzugefügt werden, alle weiteren Nodes werden dann unten drangehängt,

Vielleicht kann mir da jemand weiterhelfen,

lg
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Problem mit leerer kalender.dat - Webmaster unbekannt Allgemeine Java-Themen 9
J Leerer Spalteninhalt in einer Tabelle in JSP Allgemeine Java-Themen 5
Bananabert Swing jtree : image als user object Allgemeine Java-Themen 2
F JTree: Nodes dynamisch anlegen via LinkedHashMap Allgemeine Java-Themen 2
E Swing Jtree Allgemeine Java-Themen 9
R JTree - Mehrere Roots Allgemeine Java-Themen 6
DStrohma Icons in JTree Nodes weiter nach rechts rücken Allgemeine Java-Themen 2
M JTree aktualisieren nach Mausklick Allgemeine Java-Themen 12
DStrohma Jede node in JTree mit eigenem Icon Allgemeine Java-Themen 7
Benji0815 Verzeichnis wie im Windows Explorer in einem JTree anzeigen Allgemeine Java-Themen 6
S JAVA JTree rekursiv umschreiben Allgemeine Java-Themen 5
S Suche im JTree nach Neuaufbau Allgemeine Java-Themen 4
N JTree nicht genutzte Pfade schließen Allgemeine Java-Themen 2
G JTree Node löschen Allgemeine Java-Themen 2
G JTree Node verschieben Allgemeine Java-Themen 2
MQue JTree Allgemeine Java-Themen 6
MQue JCheckBox in JTree Allgemeine Java-Themen 2
F JTree in Jsp Allgemeine Java-Themen 2
T Äquivalent zu JTree Allgemeine Java-Themen 4
C JTree: ActionListener auf die Nodes Allgemeine Java-Themen 3
M JTree mit Rechtsklick markieren Allgemeine Java-Themen 4
C JTree: Nodes automatisch öffnen Allgemeine Java-Themen 2
P JTree/ Nodes einfügen Allgemeine Java-Themen 2
P JTree Allgemeine Java-Themen 6
P aus JTree eine XML- Datei Allgemeine Java-Themen 6
P Vector auf JTree Allgemeine Java-Themen 6
P JTree Farbe Allgemeine Java-Themen 14
S JTree selektion erkennen und drauf reagieren Allgemeine Java-Themen 2
E JTree (schonwieder) - TreeCellEditor Allgemeine Java-Themen 9
E JTree - einzelnes Element (Knoten) editieren Allgemeine Java-Themen 2
E JTree - Selektieren mit Rechtsklick Allgemeine Java-Themen 15
P JTree ID vergeben Allgemeine Java-Themen 3
P JTree Allgemeine Java-Themen 4
P JTree/ JTabbedPane Allgemeine Java-Themen 34
L JTree Allgemeine Java-Themen 23
E root JTree Allgemeine Java-Themen 2
E Child in JTree hinzufügen Allgemeine Java-Themen 4
E JTree in NetBeans Allgemeine Java-Themen 2
R Objekt an Knoten von JTree anhaengen Allgemeine Java-Themen 2
R Daten aus Baum entsprechend in jTree einfuegen Allgemeine Java-Themen 2
T Jtree zu langsam beim klappen Allgemeine Java-Themen 8
S JTree - Brett vor'm Kopp Allgemeine Java-Themen 19
G Baumhierarchie in JTree eintragen Allgemeine Java-Themen 4
K JTree - Knoten expandieren Allgemeine Java-Themen 4
K JTree Inhalt löschen und Anzeige aktualisieren Allgemeine Java-Themen 13
G JTree automatisch sortieren lassen Allgemeine Java-Themen 5
Luma Diskettenlaufwerk rattert los bei Eintrag in JTree Allgemeine Java-Themen 6
G in Jtree suchen Allgemeine Java-Themen 2
K JTree plus eigener FileLoader Allgemeine Java-Themen 2
H Wie stellt ein JTree fest, wo etwas eingehängt werden soll? Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben