JTree Knoten einfügen

bl4ck29

Mitglied
hallo,

ich hab nen Problem beim einfügen eines Knoten in einen jtree

DefaultMutableTreeNode root = new DefaultMutableTreeNode("Vorlesungen");
JTree tree = new JTree(root);

so initialisiere ich den tree und dann hab ich ne Methode

public void createNodes(String name, int logins) {
DefaultMutableTreeNode datei = new DefaultMutableTreeNode(name+" ("+logins+")");
root.add(datei);
}

die einfach nen neuen Knoten erstellt und einfügen soll. das Problem dabei ist das das ganze nur einmal funktioniert. Ich hab createNodes(..) in form eines button gemacht und beim ersten button druck nach compilieren geht es auch, aber danach kann ich machen was ich will der fügt keinen weiteren Knoten ein. Ich weiss nich was ich falsch mache kenn mich mit dem jtree nicht wirklich gut aus....

danke schonmal
 
Moin,
zeig mal ein bisschen Code. Dass es einmal klappt und dann nicht mehr, klingt merkwürdig.
 
Hallo!

Schau mal hier:
Code:
/*
 * Created on 04.05.2005@14:07:26 by Darimont
 *
 * TODO Licence info
 */
package de.tutorials;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

/**
 * @author Darimont
 * 
 * TODO Explain me
 */
public class JTreeTest extends JFrame {

	JTree tree;

	DefaultTreeModel model;

	JButton btnAddTreeItem;

	public JTreeTest() {
		super("JTreeTest");
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);

		model = new DefaultTreeModel(new DefaultMutableTreeNode("root"));

		tree = new JTree(model);
		btnAddTreeItem = new JButton("Add item to root");
		btnAddTreeItem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				((DefaultMutableTreeNode) model.getRoot())
						.add(new DefaultMutableTreeNode("File: "
								+ System.currentTimeMillis()));
				tree.updateUI();
			}
		});

		add(new JScrollPane(tree), BorderLayout.CENTER);
		add(btnAddTreeItem, BorderLayout.SOUTH);

		pack();
		setVisible(true);
	}

	public static void main(String[] args) {
		new JTreeTest();
	}
}

Gruß Tom
 
besten dank, das funktioniert 1a

wirklich gutes Forum und vorallem schnelle Hilfe, ich bin begeistert ;)
 
Das funktioniert wirklich sehr gut, aber wie mach ich das, wenn ich nun z.B. einen Knoten in einen "Unterordner" des JTree einfügen möchte und nicht in den Root-Pfad, also wenn mein Tree z.B. so aussieht:

1
1.1
1.2
2
2.1
2.2

und ich möchte nun bei 1.2 einen weiteren Knoten einfügen, welcher dann logischerweise 1.2.1 lauten würde!? Ich müßte dann ja erstmal irgendwie auslesen an welcher Stelle überhaupt ein Knoten eingefügt werden soll und dann das Einfügen an sich selbst noch.

Hoffe ihr versteht was ich meine.

Kann da einer helfen?
 
dann musst du nur über den root knoten auf den knoten zugreifen den du willst und dort einfach nen knoten adden....

wie du nun die knoten verwaltest und welche datenstruktur dahinter steht is dir überlassen und das musste dann individuell implementieren
 
Hallo zusammen,

ich hab mir echt einen abgebrochen um herauszufinden, wie ich zur Laufzeit den "Tree" ändern/updaten kann.

Vielen dank an Tom das er das so gut beschrieben hat - mit Beispiel :).

Gruß Havoc][
 
Zuletzt bearbeitet:
Zurück