JTree plus eigener FileLoader

Status
Nicht offen für weitere Antworten.

Kerberus

Bekanntes Mitglied
Habe folgenden Code aus einer Website übernommen und ein wenig modifiziert. Habe meine eigene Klasse, FileLoader, integriert.
Code:
import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;
import java.io.*;

/** Example tree built out of DefaultMutableTreeNodes.
 *  1999 Marty Hall, [url]http://www.apl.jhu.edu/~hall/java/[/url]
 */

public class SimpleTree extends JFrame {
  public static void main(String[] args) {
    new SimpleTree(args[0]);
  }
 
  public SimpleTree(String pathname) {
    super("Creating a Simple JTree");
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    Container content = getContentPane();
    
    Object[] hierarchy = (Object[]) FileLoader.createFileHierarchy(pathname);

    DefaultMutableTreeNode root = processHierarchy(hierarchy);
    JTree tree = new JTree(root);
    content.add(new JScrollPane(tree), BorderLayout.CENTER);
    setSize(275, 300);
    setVisible(true);
  }

  /** Small routine that will make node out of the first entry
   *  in the array, then make nodes out of subsequent entries
   *  and make them child nodes of the first one. The process is
   *  repeated recursively for entries that are arrays.
   */
    
  private DefaultMutableTreeNode processHierarchy(Object[] hierarchy) {
    DefaultMutableTreeNode node =
      new DefaultMutableTreeNode(hierarchy[0]);
    DefaultMutableTreeNode child;
    for(int i=1; i<hierarchy.length; i++) {
      Object nodeSpecifier = hierarchy[i];
      if (nodeSpecifier instanceof Object[])  // Ie node with children
        child = processHierarchy((Object[])nodeSpecifier);
      else
        child = new DefaultMutableTreeNode(nodeSpecifier); // Ie Leaf
      node.add(child);
    }
    return(node);
  }
}

Code:
import java.io.*;

public class FileLoader {
 public FileLoader() {
 }

 public static Object[] createFileHierarchy(String url) {
  File _root = new File(url);
  Object[] _root_array = _root.listFiles();
  Object[] _root_array_return = new Object[_root_array.length];

  if(_root_array.length == 0) {
   return _root_array;
  }

  for(int index = 0; index < _root_array.length; index++) {
   if(((File)_root_array[index]).isFile()) {
    _root_array_return[index] = (Object)_root_array[index];
   } else if(((File)_root_array[index]).isDirectory()) {
    String file_url = ((File)_root_array[index]).getPath();
    file_url = file_url +"/";
    _root_array_return[index] = (Object[]) FileLoader.createFileHierarchy(file_url);
   }
  }
  return _root_array_return;
 }

}

Nun zu meinem Problem. Manchmal funktioniert der Code und manchmal nicht. Es tauchen folgende zwei Fehlermeldungen auf, allerdings nie zugleich. Was die Fehlermeldungen besagen, weiss ich, komme allerdings nicht dahinter wieso das so ist. Vielleicht sieht jemand einen Fehler im Code.....

Tritt auf, wenn ich zum Beispiel den Programmordner von eclipse anzeigen möchte.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at SimpleTree.processHierarchy(SimpleTree.java:36)
at SimpleTree.processHierarchy(SimpleTree.java:42)
at SimpleTree.processHierarchy(SimpleTree.java:42)
at SimpleTree.processHierarchy(SimpleTree.java:42)
at SimpleTree.<init>(SimpleTree.java:22)
at SimpleTree.main(SimpleTree.java:12)

und

Tritt auf, wenn ich zum Beispiel alle Verzeichnisse und Files auf meinem Rechner anzeigen möchte.
Exception in thread "main" java.lang.NullPointerException
at FileLoader.createFileHierarchy(FileLoader.java:10)
at FileLoader.createFileHierarchy(FileLoader.java:22)
at SimpleTree.<init>(SimpleTree.java:20)
at SimpleTree.main(SimpleTree.java:12)

Schon mal danke für eventuelle Hilfe.
Sir MacKerberus
 

foobar

Top Contributor
Tritt auf, wenn ich zum Beispiel alle Verzeichnisse und Files auf meinem Rechner anzeigen möchte.
Das bedeutet, daß es das File worauf _root zeigt nicht gibt. Lass dir mal ein paar Werte ausgeben, damit du siehst was passiert.
 

Kerberus

Bekanntes Mitglied
Das ist doch komisch. Denn die Pfadangaben zum File erhalte ich ja durch listFiles() also sollte es das File doch geben? Wie auch immer. Werde noch ein wenig damit probieren. Thx.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Bananabert Swing jtree : image als user object Allgemeine Java-Themen 2
F JTree: Nodes dynamisch anlegen via LinkedHashMap Allgemeine Java-Themen 2
E Swing Jtree Allgemeine Java-Themen 9
R JTree - Mehrere Roots Allgemeine Java-Themen 6
DStrohma Icons in JTree Nodes weiter nach rechts rücken Allgemeine Java-Themen 2
M JTree aktualisieren nach Mausklick Allgemeine Java-Themen 12
DStrohma Jede node in JTree mit eigenem Icon Allgemeine Java-Themen 7
Benji0815 Verzeichnis wie im Windows Explorer in einem JTree anzeigen Allgemeine Java-Themen 6
S JAVA JTree rekursiv umschreiben Allgemeine Java-Themen 5
S Suche im JTree nach Neuaufbau Allgemeine Java-Themen 4
N JTree nicht genutzte Pfade schließen Allgemeine Java-Themen 2
G JTree Node löschen Allgemeine Java-Themen 2
G JTree Node verschieben Allgemeine Java-Themen 2
MQue leerer JTree Allgemeine Java-Themen 6
MQue JTree Allgemeine Java-Themen 6
MQue JCheckBox in JTree Allgemeine Java-Themen 2
F JTree in Jsp Allgemeine Java-Themen 2
T Äquivalent zu JTree Allgemeine Java-Themen 4
C JTree: ActionListener auf die Nodes Allgemeine Java-Themen 3
M JTree mit Rechtsklick markieren Allgemeine Java-Themen 4
C JTree: Nodes automatisch öffnen Allgemeine Java-Themen 2
P JTree/ Nodes einfügen Allgemeine Java-Themen 2
P JTree Allgemeine Java-Themen 6
P aus JTree eine XML- Datei Allgemeine Java-Themen 6
P Vector auf JTree Allgemeine Java-Themen 6
P JTree Farbe Allgemeine Java-Themen 14
S JTree selektion erkennen und drauf reagieren Allgemeine Java-Themen 2
E JTree (schonwieder) - TreeCellEditor Allgemeine Java-Themen 9
E JTree - einzelnes Element (Knoten) editieren Allgemeine Java-Themen 2
E JTree - Selektieren mit Rechtsklick Allgemeine Java-Themen 15
P JTree ID vergeben Allgemeine Java-Themen 3
P JTree Allgemeine Java-Themen 4
P JTree/ JTabbedPane Allgemeine Java-Themen 34
L JTree Allgemeine Java-Themen 23
E root JTree Allgemeine Java-Themen 2
E Child in JTree hinzufügen Allgemeine Java-Themen 4
E JTree in NetBeans Allgemeine Java-Themen 2
R Objekt an Knoten von JTree anhaengen Allgemeine Java-Themen 2
R Daten aus Baum entsprechend in jTree einfuegen Allgemeine Java-Themen 2
T Jtree zu langsam beim klappen Allgemeine Java-Themen 8
S JTree - Brett vor'm Kopp Allgemeine Java-Themen 19
G Baumhierarchie in JTree eintragen Allgemeine Java-Themen 4
K JTree - Knoten expandieren Allgemeine Java-Themen 4
K JTree Inhalt löschen und Anzeige aktualisieren Allgemeine Java-Themen 13
G JTree automatisch sortieren lassen Allgemeine Java-Themen 5
Luma Diskettenlaufwerk rattert los bei Eintrag in JTree Allgemeine Java-Themen 6
G in Jtree suchen Allgemeine Java-Themen 2
H Wie stellt ein JTree fest, wo etwas eingehängt werden soll? Allgemeine Java-Themen 2
B Parameter Konstruktor plus rechnen Allgemeine Java-Themen 6
M Source / Binaries plus Bugtracking auf Klassenebene Allgemeine Java-Themen 1
M google plus java api - Anfänger sucht Hilfe Allgemeine Java-Themen 7
M Baum nach Stack plus Objektkonvertierung Allgemeine Java-Themen 5
G JavaDocu in eigener Bibliothek Allgemeine Java-Themen 2
HarleyDavidson Eigener PropertyChangeListener funktioniert einfach nicht Allgemeine Java-Themen 3
T Datei öffnen mit eigener Applikation.exe Allgemeine Java-Themen 4
D Arraylist eigener Klasse an iReport übergeben Allgemeine Java-Themen 7
K Jar mit eigener JRE ausliefern Allgemeine Java-Themen 13
G eigener PropertyChangedListener Allgemeine Java-Themen 2
S OOP ClassCastException bei casting von eigener Klasse aus Iterator Allgemeine Java-Themen 3
V Serialisierung von Instanz eigener Klasse Allgemeine Java-Themen 5
N Vergleich eigener Klassen Allgemeine Java-Themen 5
T Vererbung Eigener Datentyp: Betriebsmittel Allgemeine Java-Themen 2
J Erste Schritte Kommerzielle nutzung eigener Javaapplets auf der Homepage Allgemeine Java-Themen 2
B Probleme mit eigener equals Methode Allgemeine Java-Themen 18
Kr0e Eigener Updatemechanismus Allgemeine Java-Themen 7
J Mein eigener Messenger und dessen Probleme Allgemeine Java-Themen 48
S Profiler-Funktionen in eigener Applikation nutzen..? Allgemeine Java-Themen 5
R Eigener Comparator Allgemeine Java-Themen 2
T Zeit von einem Server/Webseite auslesen und in eigener GUI anzeigen Allgemeine Java-Themen 6
V Probleme mit eigener Hashmap Allgemeine Java-Themen 10
B Eigener ClassLoader Allgemeine Java-Themen 9
R Eigener Assoziativ-Speicher Allgemeine Java-Themen 7
T CP Problem: Webstart + Logging properties file + eigener Handler Allgemeine Java-Themen 7
P eigener Klassenname Allgemeine Java-Themen 4
D Eigener Key bei AES Verschlüsselung Allgemeine Java-Themen 4
T enums - eigener startwert Allgemeine Java-Themen 5
J Eigener ClassLoader wird nicht immer verwendet Allgemeine Java-Themen 3
P eigener Thread für einen JButton Allgemeine Java-Themen 32
F Checkbox in JTable , eigener Cellrenderer -wie gehts weiter? Allgemeine Java-Themen 2
A JRE auf eigener Seite verlinken oder zum Download anbieten? Allgemeine Java-Themen 13
E Wie: Eigener Listener, eigenes Event (möglichst einfach) Allgemeine Java-Themen 29
G eigener logger mittels classe (dynamische logfilename) log4j Allgemeine Java-Themen 15
D Eigener Maven2 Plugin Server? Allgemeine Java-Themen 3
I RSA - Eigener Quelltext Allgemeine Java-Themen 4
M eigener LautstärkeRegler schädlich für soundkarte? Allgemeine Java-Themen 4
L Problem mit eigener, abgeleiteter Klasse Allgemeine Java-Themen 2
S Eigener Editor Allgemeine Java-Themen 7
L Eigener Onlinestunden- Zähler / Problemchen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben