Hi,
Wollte einen File Tree programmieren, hab aber ein Problem, dass ich immer einen "java.lang.StackOverflowError" bekomme, was wohl an der rekursiven Methode "TreeAktualMethode" liegt, aber warum und wie lös ich das Problem?
Grüße
hier ist noch der Thread "TreeAktual"
Wollte einen File Tree programmieren, hab aber ein Problem, dass ich immer einen "java.lang.StackOverflowError" bekomme, was wohl an der rekursiven Methode "TreeAktualMethode" liegt, aber warum und wie lös ich das Problem?
Grüße
Java:
public static void SetRoot() {
//Root setzen
oben = new DefaultMutableTreeNode("Verzeichnisse");
tree.setModel(new DefaultTreeModel(oben));
TreeAktualMethode(datei);
}
/**
* rekursive Anwendung
* @param datei
*
*/
public static void TreeAktualMethode(File datei) {
TreeAktual aktual = new TreeAktual(datei);
aktual.start();
File[] drives = datei.listRoots();
{
for (int i = 0; i < drives.length; i++) {
if (drives[i].isDirectory()) {
TreeAktualMethode(drives[i]);
}
}
aktual.stop();
}
}
hier ist noch der Thread "TreeAktual"
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package dateiuebersicht;
import java.io.File;
import javax.swing.tree.DefaultMutableTreeNode;
/**
*
* @author René Hauck
*/
public class TreeAktual extends Thread {
private static DefaultMutableTreeNode oben = DateiUebersichtView.oben;
File datei;
File[] drives;
/**
* Konstruktor
*/
public TreeAktual(File datei) {
this.datei = datei;
drives = datei.listRoots();
}
@Override
public void run() {
for (int i = 0; i < drives.length; i++) {
DefaultMutableTreeNode root = new DefaultMutableTreeNode(drives[i]);
oben.add(root);
}
}
}