JTree root setzten

tdc

Bekanntes Mitglied
Hi!

Ich suche eine Möglichkeit bei einem JTree den "root" zu setzten.

Normalerweise macht man es ja so:
Java:
JTree tree = new JTree(root);

Wenn ich jetzt allerdings eine Klasse habe, die von einem JTree erbt:
Java:
public class createDataTree
	extends JTree
Muss es ja auch eine Möglichkeit geben, den Root zu setzten... oder ist es unsinnig es auf meine Weise zu machen?

Hoffe, ihr könnt mir helfen.

mfg tdc
 

tdc

Bekanntes Mitglied
Ich hab's probiert, aber ich bekomm's nicht hin...

Hier der bisherige Code:
Java:
package programm;
import java.io.File;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;

public class createDataTree
	extends JTree
{
	private String Path = System.getProperty("user.dir") + "\\src\\user";
	
	createDataTree()
	{
		File UserDir = new File(Path);
		File[] ProjectList = UserDir.listFiles();
		DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
		if(ProjectList.length > 0)
		{
			for(int i = 0; ProjectList.length > i ; i++)
			{
				if(ProjectList[i].isDirectory())
				{
					DefaultMutableTreeNode project = new DefaultMutableTreeNode(ProjectList[i]);
					root.add(project);
				}
			}
		}
	}
}

Wie kann ich jetzt den Root festlegen?
 

Der Müde Joe

Top Contributor
schätze mal so (ohne zu testen)
Java:
import java.io.File;

import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeNode;


public class JDataTree extends JTree {

	private static String Path = System.getProperty("user.dir") + "\\src\\user";

	private JDataTree(TreeNode root) {
		super(root);
	}

	public static JDataTree createDataTree() {
		File UserDir = new File(Path);
		File[] ProjectList = UserDir.listFiles();
		DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
		if (ProjectList.length > 0) {
			for (int i = 0; ProjectList.length > i; i++) {
				if (ProjectList[i].isDirectory()) {
					DefaultMutableTreeNode project = new DefaultMutableTreeNode(ProjectList[i]);
					root.add(project);
				}
			}
		}
		return new JDataTree(root);
	}
}
 

andiv

Bekanntes Mitglied
Um mit dem JTree vernünftig zu arbeiten brauchst du sowieso ein TreeModel und da kannst du dann auch außerhalb des Konstruktors noch den Wurzelknoten setzen. setRoot(TreeNode node) im DefaultTreeModel zum Beispiel.
 

tdc

Bekanntes Mitglied
schätze mal so (ohne zu testen)
Java:
import java.io.File;

import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeNode;


public class JDataTree extends JTree {

	private static String Path = System.getProperty("user.dir") + "\\src\\user";

	private JDataTree(TreeNode root) {
		super(root);
	}

	public static JDataTree createDataTree() {
		File UserDir = new File(Path);
		File[] ProjectList = UserDir.listFiles();
		DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
		if (ProjectList.length > 0) {
			for (int i = 0; ProjectList.length > i; i++) {
				if (ProjectList[i].isDirectory()) {
					DefaultMutableTreeNode project = new DefaultMutableTreeNode(ProjectList[i]);
					root.add(project);
				}
			}
		}
		return new JDataTree(root);
	}
}

Den Code habe ich jetzt eingebaut, wenn ich allerdings jetzt von einer anderen Klasse aus auf die Klasse zugreifen will, muss ich jetzt einen TreeNode übergeben. Deshalb habe ich jetzt die Klasse so aufgerufen:
Java:
DataTree myDataTree = new DataTree(TreeNode root = new TreeNode());
und beim import habe ich jetzt noch folgende Zeile hinzugefügt:
Java:
import javax.swing.tree.TreeNode;
Das Problem ist jetzt: beim import wird keine Fehlermeldung angezeigt, die Klasse scheint also zu existieren, beim aufruf der (eigenen)Klasse wird allerdings behauptet, TreeNode würde nicht existieren.
???:L
 

andiv

Bekanntes Mitglied
TreeNode ist ein Interface, du brauchst eine konkrete Implementierung wie DefaultMutableTreeNode, dann kannst du auch ein Objekt davon erstellen.
 

tdc

Bekanntes Mitglied
Ok, so ähnlich hatte ich es davor schonmal, aber ich versuche es trotzdem mal:
Java:
DataTree myDataTree = new DataTree(DefaultMutableTreeNode());
Dann kommt wieder eine Fehlermeldung:
The method DefaultMutableTreeNode() is undefined for the type mainWindow

Ansonsten könnte ich noch das von davor machen:
Java:
DataTree myDataTree = new DataTree(DefaultMutableTreeNode root = new DefaultMutableTreeNode());
Da kommt dann die Fehlermeldung:
DefaultMutableTreeNode cannot be resolved

Sorry wenn ich mich ein wenig doof anstelle, aber ich bin ziemlich unerfahren...:oops:
 

andiv

Bekanntes Mitglied
Java:
DataTree myDataTree = new DataTree(new DefaultMutableTreeNode());

Aber meiner Meinung nach solltest du erstmal Grundlagen lernen bevor du dich an grafische Oberflächen machst. Mit Try&Error wirst du auf Dauer nur Ärger haben.
 

tdc

Bekanntes Mitglied
Ah gut, es funktioniert jetzt - es kommt zumindest keine Fehlermeldung mehr.
Der root wird jetzt richtig angezeigt, es werden allerdings keine Unterpunkte hinzugefügt.
Java:
package programm;
import java.io.File;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeNode;

public class DataTree
	extends JTree
{
	private static String Path = System.getProperty("user.dir") + "\\src\\user";
	
	 public DataTree(TreeNode root)
	 {
	        super(root);
	        createDataTree();
	 }
	
	public void createDataTree()
	{
		File UserDir = new File(Path);
		File[] ProjectList = UserDir.listFiles();
		if(ProjectList.length > 0)
		{
			for(int i = 0; ProjectList.length > i ; i++)
			{
				if(ProjectList[i].isDirectory())
				{
					DefaultMutableTreeNode project = new DefaultMutableTreeNode(ProjectList[i]);
				}
			}
		}
	}
}

muss ich den Tree nochmal mit repaint() erneuern, oder wo liegt der Fehler?
Ich habe mal mit dem debugger geguckt. Die DefaultMutableTreeNodes werden richtig hinzugefügt, sie werden nur nicht angezeigt...

Edit: Ach nee, habe grad gesehen, dass ich nochmal einen DefaultMutableTreeNode mit dem Namen root erzeuge...

Edit 2: hat sich erledigt!
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
I JTree, Root-Name ändern Java Basics - Anfänger-Themen 4
M JTree ohne root anzeigen Java Basics - Anfänger-Themen 5
G JTree speichern und wieder einlesen Java Basics - Anfänger-Themen 5
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
F Jtree kürzt Namen auf ... Java Basics - Anfänger-Themen 4
H Collections JTree remove zeigt keinen Effekt! Java Basics - Anfänger-Themen 8
H Best Practice Wo wird der rootNode eines JTree gespeichert... Java Basics - Anfänger-Themen 0
H Erste Schritte JTree: Instanzen einer Klasse speichern oder Namen/Strings... Java Basics - Anfänger-Themen 4
R JTree bewegen Java Basics - Anfänger-Themen 6
N Dynamisch JTree erstellen Java Basics - Anfänger-Themen 3
G bestimmte dateiendungen in jtree rausfiltern Java Basics - Anfänger-Themen 7
P JTree aus txt Java Basics - Anfänger-Themen 8
M Warum wird mein Icon bei den JTree Nodes nicht angezeigt? Java Basics - Anfänger-Themen 7
JStickman JTree, JScrollPane, Liste mit graphischer Suchleiste - Dateimanager Java Basics - Anfänger-Themen 10
M JTree + JTab Java Basics - Anfänger-Themen 3
T JTree füllen Java Basics - Anfänger-Themen 3
B JTree knoten wird nicht übernommen Java Basics - Anfänger-Themen 4
S JTree Hilfe Java Basics - Anfänger-Themen 6
P Jtree MouseListener und NoCollapse Java Basics - Anfänger-Themen 2
F JTree mit JSpinner Java Basics - Anfänger-Themen 2
I Liste von Dateien anzeigen/JTree Java Basics - Anfänger-Themen 4
G Zugriff auf JTree-Objekt Java Basics - Anfänger-Themen 2
K Problem: JTree mit integrierten JCheckboxen Java Basics - Anfänger-Themen 5
B OOP Jtree aus TreeMap<String, String[]> erstellen? Java Basics - Anfänger-Themen 6
D JTree ich dreh durch :D Java Basics - Anfänger-Themen 2
G xml Datei in JTree Java Basics - Anfänger-Themen 2
S JTree, Problem mit View Update Java Basics - Anfänger-Themen 2
R Problem mit JTree und JTable Java Basics - Anfänger-Themen 16
A JTree drucken Java Basics - Anfänger-Themen 2
M JTree und ein Button mit ActionListener Java Basics - Anfänger-Themen 3
G Verständnisproblem --> JTree Java Basics - Anfänger-Themen 6
G Filesystem in JTree anzeigen Java Basics - Anfänger-Themen 4
A Jtree Aufbau Java Basics - Anfänger-Themen 5
G JTree ilstener Java Basics - Anfänger-Themen 3
G JTree Java Basics - Anfänger-Themen 2
G Erstellten JTree aus einer XML-Datei akktualisieren Java Basics - Anfänger-Themen 11
S jTree initialisierung Java Basics - Anfänger-Themen 4
F Doppelklick-Event auf JTree Java Basics - Anfänger-Themen 5
J ArrayListen mit Name und Vater an JTree übergeben Java Basics - Anfänger-Themen 3
G aussehen vom jtree wiederherstellen Java Basics - Anfänger-Themen 3
P JTree mit mehreren Wurzeln Java Basics - Anfänger-Themen 2
G Umbenennen im JTree Java Basics - Anfänger-Themen 5
G rechter Mausklick im JTree Java Basics - Anfänger-Themen 2
G Bilder im jTree Java Basics - Anfänger-Themen 3
G jTree Pfad merken Java Basics - Anfänger-Themen 2
S JTree aktualisieren Java Basics - Anfänger-Themen 4
M JTree aktualisieren Java Basics - Anfänger-Themen 3
E JTree - Element suchen Java Basics - Anfänger-Themen 5
G JTree Problem. Java Basics - Anfänger-Themen 5
G JTree Java Basics - Anfänger-Themen 2
E JTree - Verzeichnisbaum Java Basics - Anfänger-Themen 3
G JTree Frage Java Basics - Anfänger-Themen 5
G Ebene von JTree ermitteln? Java Basics - Anfänger-Themen 6
G Icons für JTree skalieren? Java Basics - Anfänger-Themen 3
G Standard JTree ausblenden? Java Basics - Anfänger-Themen 5
B JTree mit Verzeichnissen füllen Java Basics - Anfänger-Themen 17
G Object vor reload von JTree merken und danach wieder setzen? Java Basics - Anfänger-Themen 5
P Wert aus JTree in ComboBox setzen? Java Basics - Anfänger-Themen 2
G Problem mit Refresh von JTree Java Basics - Anfänger-Themen 11
lomtas Scrollbalken für JTree Java Basics - Anfänger-Themen 3
lomtas JTree Struktur im Nachhinein ändern Java Basics - Anfänger-Themen 2
K JTree verlinken Java Basics - Anfänger-Themen 3
T ArrayList mit Dateien in die richtigen Ordner eines JTree Java Basics - Anfänger-Themen 16
K JTree aus DB rekursiv füllen Java Basics - Anfänger-Themen 12
M Dateisystem in Jtree - Ordnericon darstellen Java Basics - Anfänger-Themen 4
G JTree vollständigen pfad anzeigen Java Basics - Anfänger-Themen 11
R JTree aus einer ArrayList Java Basics - Anfänger-Themen 9
J JTree Bilder Java Basics - Anfänger-Themen 2
G JTree.TreeListener Java Basics - Anfänger-Themen 12
S JTree valueChanged() Ausgabe leider immer mit Pfadangabe! Java Basics - Anfänger-Themen 4
S JTree aktualisieren bzw. komplett neu aufbauen Java Basics - Anfänger-Themen 6
G Scrollen im JTree Java Basics - Anfänger-Themen 17
G Hintergrundsfarbe für JTree Java Basics - Anfänger-Themen 15
F JTree-Knoten (DefaultMutableTreeNode) formatieren ? Java Basics - Anfänger-Themen 3
Y JTree: ein Knoten als Objekt Java Basics - Anfänger-Themen 2
J JTable / JTree: Unsichtbare Elemente Java Basics - Anfänger-Themen 4
G JTree Explorer Problem mit listRoots() Java Basics - Anfänger-Themen 9
V Jtree: Alle Verzeichnisse und Ordner anzeigen, aber wie? Java Basics - Anfänger-Themen 2
F javafx.fxml.LoadException: Root hasn't been set. Java Basics - Anfänger-Themen 0
L SHELL-Scripte als root ausführen Java Basics - Anfänger-Themen 5
Horst79 Temp Datei cachen anstatt physikalische Datei im root Verz? Java Basics - Anfänger-Themen 8
T Aus dem package zurück auf die Root Ebene Java Basics - Anfänger-Themen 2
F Root-Pfad der Java-Anwendung herausfinden Java Basics - Anfänger-Themen 1
I Wie kann man in root -User wechseln? Java Basics - Anfänger-Themen 16
K Wie kann ich ein Element an den Anfang setzten ? Java Basics - Anfänger-Themen 1
I Int Array, Zahl an bestimmte position setzten Java Basics - Anfänger-Themen 2
Luk10 Member-Variablen mit settern setzten Java Basics - Anfänger-Themen 9
S File: relativen Pfad setzten Java Basics - Anfänger-Themen 5
J Gui in schleife setzten Java Basics - Anfänger-Themen 17
H Fokus auf jTextfield setzten Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben