JTree Explorer Problem mit listRoots()

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hoi erstmal :).

Folgendes Problem:

Ich hab nen Explorer geschrieben, nur zeigt er mir die Daten von z.B "C:\" an, den Pfadnamen leg ich vorher mit nem neuen File Objekt fest.
Seit ungefähr einer Stunde quäl ich mich mit dem Befehl listRoots(), auch wenn ich listRoots verwende zeigt er mir nur die erste Festplatte also "C:\" an, d.h die Erste die er findet...


Hier der Quellcode(was ich bisher getan habe ohne listRoots).

Code:
static void showDir1(File f, DefaultMutableTreeNode tree)
		{
			File[] f1 = f.listFiles();
				
				for(int i = 0; i < f1.length; i++)
					{
						
					DefaultMutableTreeNode knoten1 = new DefaultMutableTreeNode(f1[i].getName());
									
						if(f1[i].isDirectory())
							{
									
									tree.add(knoten1);
																
									showDir1(f1[i], knoten1);
																																													
							}
												
					}
			
		}
 
R

Roar

Gast
was bringt das jetzt wenn ich nicht seh wo du listRoots verwendet hast?
 
B

Beni

Gast
Liegt das Problem bei der Anzeige, oder steckt im Array nur die Festplatte C ?
 
G

Guest

Gast
Beni hat gesagt.:
Liegt das Problem bei der Anzeige, oder steckt im Array nur die Festplatte C ?
jap stimmt, aber wie übergeb ich alle festplatten?
mit listRoots funktioniert das nicht wirklich...
 
B

Beni

Gast
Ich hab ja manchmal selbst Probleme ein klarer dt. Satz zu formulieren ???:L .
Aber bei allen guten Göttern: das war keine Frage die man mit "ja" oder "nein" beantworten kann.

:arrow: WELCHE der beiden Möglichkeiten stimmt?
:arrow: Poste ein bisschen Code: vorallem wie du zu den Roots kommst und wie Du sie anzeigen willst, ...

:arrow: Einfach alles was uns helfen könnte dein Problem zu verstehen/lösen!

mfg Beni

P.S. bei mir liefert listRoots 11 Laufwerke.
P.P.S. für einen Explorer könnte javax.swing.filechooser.FileSystemView noch interessant sein.
 
G

Guest

Gast
so sieht der jetzige code mit listRoots aus..


Code:
static void showDir1(File f, DefaultMutableTreeNode tree)
		{
			
			File mainDir[] = File.listRoots();
			
			 
			for(int c = 0; c < mainDir.length; c++)
				{
					
					File[] f1 = mainDir[c].listFiles();
					DefaultMutableTreeNode device = new DefaultMutableTreeNode(f1[c]);
				
				for(int i = 0; i < f1.length; i++)
					{
						
						DefaultMutableTreeNode knoten1 = new DefaultMutableTreeNode(f1[i].getName());
									
						if(f1[i].isDirectory())
							{
									
									tree.add(knoten1);						
								
									showDir1(f1[i], knoten1);
																																													
							}
												
					}
					root.add(device);	
				}
			
		}
als Fehlermeldung erhalte ich nen StackOverFlowError
 

Nobody

Top Contributor
ein stackoverflow kommt, wenn du den stack eines anderen programmes mitnutzt bzw kann dazu kommen zb wenn man dem prog garkein stack gibt (über assembler möglich)
wahrscheinlich erzeugst du in klasse a ein objekt der klasse b und umgekehrt, das schaukelt sich dann hin und her und der stack is voll
 
B

Beni

Gast
als Fehlermeldung erhalte ich nen StackOverFlowError
Logisch, deine Methode ruft sich selbst auf, erreicht aber nie eine Abbruchbedingung, da Du sie immer wieder mit der ersten Datei des ersten Roots fütterst.

Ich denke sowas würde besser funktionieren:
Code:
static void showDirectories(){
	File[] mainDir = File.listRoots();
	for( int i = 0; i < mainDir.length; i++ ){
		DefaultMutableTreeNode directory = new DefaultMutableTreeNode( mainDir[i].getName() );
		showDir1( mainDir[i], directory );
		root.add( directory );  // Was auch immer "root" ist
	}
}

static void showDir1(File f, DefaultMutableTreeNode tree){      
	if(f.isDirectory()){   
		File[] f1 = file.listFiles();
		for(int i = 0; i < f1.length; i++){
			DefaultMutableTreeNode knoten1 = new DefaultMutableTreeNode(f[1].getName());
			tree.add(knoten1);
			showDir1(f1[i], knoten1);
		}
	}
}

mfg Beni
 
G

Guest

Gast
Danke Beni..
nur den Code den du grade gepostet hast, hatte ich auch schon zusammengeschrieben aber er funktioniert nicht...
er zeigt trotzdem nur die Files von der ersten Festplatte in dem Fall "C:\" an..
 
B

Beni

Gast
Dieser Code:

Code:
package testing;

import javax.swing.*;
import javax.swing.tree.*;
import java.io.*;

public class FileTest extends JFrame {

  public FileTest() {
    DefaultMutableTreeNode root = new DefaultMutableTreeNode( "Eingang zur Matrix" );
    showDirectories( root, 2 );

    JTree tree = new JTree( root );
    getContentPane().add( new JScrollPane( tree ));
    setDefaultCloseOperation( EXIT_ON_CLOSE );
    setBounds( 10, 10, 500, 500 );
    setVisible( true );
  }


  static void showDirectories( DefaultMutableTreeNode root, int maximum ){
    File[] mainDir = File.listRoots();
    for( int i = 0; i < mainDir.length; i++ ){
      DefaultMutableTreeNode directory = new DefaultMutableTreeNode( mainDir[i].getPath() );
      showDir1( mainDir[i], directory, maximum-1 );
      root.add( directory );  // Was auch immer "root" ist
    }
  }

  static void showDir1(File file, DefaultMutableTreeNode tree, int maximum){
    if(maximum >= 0 && file.isDirectory()){
      File[] f = file.listFiles();
      for(int i = 0; i < f.length; i++){
        DefaultMutableTreeNode knoten1 = new DefaultMutableTreeNode(f[i].getName());
        tree.add(knoten1);
        showDir1(f[i], knoten1, maximum-1);
      }
    }
  }
}

Liefert bei mir:

forum_003.png


Probier das aus! Wenn das bei dir nur "C:\" liefert, dann weiss ich auch nicht weiter. P.S. Du hast doch mehr als ein Laufwerk :wink: ?

mfg Beni
 
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
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
V Jtree: Alle Verzeichnisse und Ordner anzeigen, aber wie? Java Basics - Anfänger-Themen 2
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
M Java GUI explorer aufrufen um Pfad zu bekommen Java Basics - Anfänger-Themen 3
T Compiler-Fehler Eclipse: leerer Package Explorer Java Basics - Anfänger-Themen 4
MR._FIRE_Flower Ordner im Explorer öffnen lassen Java Basics - Anfänger-Themen 2
E java mit Internet Explorer 11 Java Basics - Anfänger-Themen 8
M Explorer oeffnen mittels java.awt.Desktop Java Basics - Anfänger-Themen 18
K Kommunizieren mit Firefox/IE-Explorer Java Basics - Anfänger-Themen 14
J Window 7 Problem mit Runtime.getRuntime().exec("explorer") Java Basics - Anfänger-Themen 4
Developer_X Mein erster Internet Explorer Java Basics - Anfänger-Themen 14
K GUI auf normalen Explorer Java Basics - Anfänger-Themen 22
A eigener Explorer via Java? Java Basics - Anfänger-Themen 9
J SQL Explorer für Eclipse Java Basics - Anfänger-Themen 5
G fragen zum Internet Explorer Java Basics - Anfänger-Themen 6
H Explorer starten Java Basics - Anfänger-Themen 4
S Explorer funktionen nachprogrammieren Java Basics - Anfänger-Themen 2
J Wie kann man im Systempopup einträge machen z.B im Explorer? Java Basics - Anfänger-Themen 6
D "explorer" aufrufen Java Basics - Anfänger-Themen 3
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben