Hi,
ich wollte einen JTree erstellen und mit Daten füllen.
Der übersichtlichkeithalber wollte ich das erstellen der ganzen Knoten
in einer anderen Klasse auslagern.
Also dachte ich mir ich schreibe Code wie den der unter "Mein Vorgehen" zu sehen ist.
Das Problem ist allerdings, dass das nicht funktioniert.
Wenn man das Standardvorgehen wählt, dann muss man
JTree tree = new JTree(rootNode);
also man übergibt im Konstruktor den rootNode. Anschließend kann man den Tree einfach in
ein Panel oder JFrame einbetten.
Bei meinem Code weiß ich aber nicht was ich mit den rootNode machen soll nachdem ich ihn
fertig erstellt habe mit allen Unterknoten. Ein add(rootNode) geht nicht. Und super() kann ich auch
nicht einfach den rootNode übergebe, da super() gleich zu beginn aufgerufen werden muss und ich
da logischerweise meinen rootNode noch nicht erstellt habe.
Was muss ich korigieren damit mein Baum korrekt angezeigt wird?
Standard:
Mein Vorgehen:
ich wollte einen JTree erstellen und mit Daten füllen.
Der übersichtlichkeithalber wollte ich das erstellen der ganzen Knoten
in einer anderen Klasse auslagern.
Also dachte ich mir ich schreibe Code wie den der unter "Mein Vorgehen" zu sehen ist.
Das Problem ist allerdings, dass das nicht funktioniert.
Wenn man das Standardvorgehen wählt, dann muss man
JTree tree = new JTree(rootNode);
also man übergibt im Konstruktor den rootNode. Anschließend kann man den Tree einfach in
ein Panel oder JFrame einbetten.
Bei meinem Code weiß ich aber nicht was ich mit den rootNode machen soll nachdem ich ihn
fertig erstellt habe mit allen Unterknoten. Ein add(rootNode) geht nicht. Und super() kann ich auch
nicht einfach den rootNode übergebe, da super() gleich zu beginn aufgerufen werden muss und ich
da logischerweise meinen rootNode noch nicht erstellt habe.
Was muss ich korigieren damit mein Baum korrekt angezeigt wird?
Standard:
Java:
DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Fields");
rootNode.add(...);
JTree tree = new JTree(rootNode);
JScrollPane treeScrollPane = new JScrollPane(tree);
add(treeScrollPane);
Mein Vorgehen:
Java:
public class MyTree extends JTree
{
super();
DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Fields");
rootNode.add(...);
add(rootNode); // Nicht erlaubt
}
MyTree tree = new MyTree();
JScrollPane treeScrollPane = new JScrollPane(tree);
add(treeScrollPane);