JTree mit Verzeichnissen füllen

Status
Nicht offen für weitere Antworten.

Big Apple

Aktives Mitglied
Hallo,

kann man den JTree automatisch den Verzeichnissen des Computers füllen ohne erst viel einzutragen?

Schon mal danke für Antworten

Big Apple
 

Big Apple

Aktives Mitglied
Also ich finde da zwar wie man einen JTree erstellt und weiteres aber nicht wie ich ihn mit dern Verzeichnissen füllen kann. Wäre nett wenn ihr mir einen Code dazu geben könnt.

Viele Grüße

Big Appple
 

JPKI

Top Contributor
Nun, da steht doch drin, wie man Nodes hinzufügt, gell?
Also listest du einfach alle Verzeichnisse mit der File-Funktion listFiles() auf, und fügst dementsprechend Einträge hinzu.
 

trazzag

Bekanntes Mitglied
Poste doch mal was du bisher hast. Vielleicht können wir dich dann in die richtige Richtung stoßen... ;-)
 

Big Apple

Aktives Mitglied
Mein kompletter code sieht so auf:

Code:
import java.awt.FileDialog;
import java.awt.Scrollbar;
import java.io.*;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.*;

public class dir extends JFrame {

	private static File dir = new File("/Users/PSpooren/Documents");

	private static DefaultMutableTreeNode treeMain = new DefaultMutableTreeNode(
			dir.getName());

	private static DefaultMutableTreeNode treeAlt = treeMain;

	private static DefaultMutableTreeNode treeNeu = null;

	public dir() {

		listDir(dir);

		JTree tree = new JTree(treeMain);
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setViewportView(tree);

		this.add(tree);
	}

	public static void listDir(File dir) {
		File[] files = dir.listFiles();
		if (files != null) {
			for (int i = 0; i < files.length; i++) {
				if (files[i].isDirectory()) {
					treeNeu = new DefaultMutableTreeNode(files[i].getName());
					treeAlt.add(treeNeu);
					treeAlt = treeNeu;
					listDir(files[i]);
				} else {
					treeAlt.add(new DefaultMutableTreeNode(files[i].getName()));
				}

			}
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Automatisch erstellter Methoden-Stub
		dir frame = new dir();
		frame.setVisible(true);

	}

}
 

trazzag

Bekanntes Mitglied
Dein Code funktioniert bei mir einwandfrei.

Du solltest dir nur angewöhnen Klassennamen einen GROßEN Anfangsbuchstaben zu verpassen!
Und weiterhin kannst du mal versuchen in der Zeile
Code:
private static File dir = new File("C:\\Programme");
wie oben gezeigt einen absoluten Pfad anzugeben. Vielleicht ist da dein Problem...
 

Big Apple

Aktives Mitglied
Ja das mit Großbuchstaben mache ich eigentlich auch immer, nur da einmal vergessen.

Also da ich ein Apple haben heißen die Verzeichnisse bei mir etwas anderes.

Das Problem bei dem Code ist dass es immer nur einen Ordner gibt, in dem dann der nächste, und so weiter.
Nie gibt es zwei oder mehr Unterordner.
 

trazzag

Bekanntes Mitglied
So, hab deine listDir Methode jetzt mal so angepaßt, daß es funktionieren sollte:

Code:
	public static void listDir(File dir) {
		File[] files = dir.listFiles();
		if (files != null) {
			for (int i = 0; i < files.length; i++) {

				treeNeu = new DefaultMutableTreeNode(files[i].getName());
				treeAlt.add(treeNeu);
				if (files[i].isDirectory()) {
					treeAlt = treeNeu;
					listDir(files[i]);
					treeAlt = (DefaultMutableTreeNode) treeAlt.getParent();
				}
			}
		}
	}
 

Big Apple

Aktives Mitglied
Könnt ihr mir auch noch sagen wie ich da nun ein JScrollPanel hinzufügen kann ( also eine Scrollbar).
Ich habe das so versucht was nicht funktioniert:

Code:
		JTree tree = new JTree(treeMain);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		scrollPane.getViewport().setView(tree);
		this.add(tree);
 

MarcoBehnke

Bekanntes Mitglied
bei mir funktioniert es so:

Code:
JTree filetree = new JTree(root);

JScrollPane pane = new JScrollPanel
pane.getViewport().setView(filetree);

JPanel panel = new JPanel(new BorderLayout());
panel.add(pane, BorderLayout.CENTER);

Du musst das ScrollPane adden nicht nicht den tree!!
also bei Dir

Code:
JTree tree = new JTree(treeMain);
      
JScrollPane scrollPane = new JScrollPane();
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.getViewport().setView(tree);

this.add(scrollPane);
 

der JoJo

Bekanntes Mitglied
ich glaube du must mit der Method add entweder das ScrollPane an den Tree oder den Tree an das ScrollPane adden
 

trazzag

Bekanntes Mitglied
Du kannst den Tree auch gleich über den Konstruktor der Scrollpane in diese packen:

Code:
JTree tree = new JTree(treeMain); 

/* Scrollpane für den Tree */
JScrollPane treeScrollPane = new JScrollPane(tree);
this.add(treeScrollPane);
 

Big Apple

Aktives Mitglied
Mir ist nun noch eine Verbesserung eingefallen. Es wäre viel schneller wenn nicht immer alles geladen werden würde, sondern nur das das grade offen ist. Gesagt getan:

Code:
	public void treeExpanded(TreeExpansionEvent event) {
		DefaultMutableTreeNode treeToExpand = (DefaultMutableTreeNode) event.getPath().getLastPathComponent();
		treeToExpand.removeAllChildren();
		File filesInDirectory = new File(treeToExpand.toString());
		File[] files = filesInDirectory.listFiles();
		if (files != null) {
			for (int i = 0; i < files.length; i++) {
				reeNeu = new DefaultMutableTreeNode(files[i].getName());
				treeToExpand.add(treeNeu);
				if (files[i].isDirectory()) {
					treeNeu.add(new DefaultMutableTreeNode("Bitte warten"));
				}
				modTreeMain.reload();
			}
		}
	}

Bei dem ersten Verzeichniss geht das auch wunderbar, dann leider nicht mehr.
Ich weiß auch wodran das liegt, wenn ich treeToExpand in einen String umwandle ist davor immer "[" und dahinter "]".
Das könnte ich mit replace ändern, aber gibt es da keine bessere Lösung?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
I JTree, Root-Name ändern Java Basics - Anfänger-Themen 4
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
M JTree ohne root anzeigen Java Basics - Anfänger-Themen 5
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
T JTree root setzten Java Basics - Anfänger-Themen 13
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
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
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
X Probleme beim rekursiven Durchsuchen von Verzeichnissen Java Basics - Anfänger-Themen 1
R Classpath Setzen von class Verzeichnissen Java Basics - Anfänger-Themen 2
E Vergleichen von Verzeichnissen Java Basics - Anfänger-Themen 5
F Dialog zum Durchsuchen von Verzeichnissen nach Datei Java Basics - Anfänger-Themen 11
G Area mit Teil-Image füllen Java Basics - Anfänger-Themen 0
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
Poppigescorn String mit mehreren Wörtern füllen? Java Basics - Anfänger-Themen 4
sashady 2D-Array mit Zahlenmuster füllen Java Basics - Anfänger-Themen 4
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
java3690 Java- liste füllen ud die werte addieren Java Basics - Anfänger-Themen 13
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
java3690 Liste mit zufälligen zahlen füllen Java Basics - Anfänger-Themen 27
T Array füllen Java Basics - Anfänger-Themen 11
B Objekt von EJB in Controller (CDI) - Klasse füllen? Java Basics - Anfänger-Themen 3
J Combobox füllen mit Wertausgabe von andere Klasse Java Basics - Anfänger-Themen 3
A Array richtig füllen Java Basics - Anfänger-Themen 2
krgewb Array später füllen Java Basics - Anfänger-Themen 1
E Arrays nach best Muster füllen Java Basics - Anfänger-Themen 4
A Ein Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben