Übergebenem JTree Blätter hinzufügen

erazor2106

Bekanntes Mitglied
Hallo Leute,

ich bekomme von einer Methode ein Array mit mehreren JTree's zurück.

Nun möchte ich diesen Bäumen Blätter hinzufügen können, was aber leider nicht klappt:

Java:
         DefaultMutableTreeNode root1a = new DefaultMutableTreeNode(" ");
         JTree konfigurationsbaum1a = new JTree(root1a);
         root1a.add(new DefaultMutableTreeNode("1 "));
         root1a.add(new DefaultMutableTreeNode(" "));
         root1a.add(new DefaultMutableTreeNode(" "));
         root1a.add(new DefaultMutableTreeNode(" "));
         root1a.add(new DefaultMutableTreeNode(" "));
         konfigurationsbaum1a.expandRow(0);
         konfigurationsbaum1a.setRootVisible(false);

         JTree[] array = new JTree[1];

         return array;

Ich hab dann versucht mit
Java:
 array[0].getModel().getRoot().add(new DefaultMutableTreeNode("Blatt"));
ein neues Blatt hinzuzufügen aber es kommt immer die Meldung: cannot find symbol, method add(javax.swing.tree.DefaultMutableTreeNode)

Was mache ich falsch? 🙁
 
Java:
array[0].getModel().getRoot()

Liefert dir ein
Code:
Object
zurück und das hat keine Methode
Code:
add(...)
. Du musst es zuerst in ein
Code:
DefaultMutableTreeNode
casten.

Außerdem ist dein Array, dass du zurück lieferst leer.
 
getRoot() liefert ja "nur" ein Objekt zurück.
In diesem Fall kann man ja davon ausgehen, dass diesen Objekt ein DefaultMutableTreeNode ist und das Objekt darauf casten:
Java:
DefaultMutableTreeNode root = (DefaultMutableTreeNode)array[0].getModel().getRoot();
root.add(new DefaultMutableTreeNode("Blatt"));
Allerdings muss man bei der Vorgehensweise, den JTree noch über die Änderung seines Models informieren, damit dieser sich aktualisiert.
How to Use Trees (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)

Edit:
Besser ist es solche Änderungen über das Model durchzuführen. (s. Link)
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben