Dateisystem in Jtree - Ordnericon darstellen

Status
Nicht offen für weitere Antworten.

Milo

Bekanntes Mitglied
Hallo,

ich möchte gern das Dateisystem in einem JTree Menü darstellen. Mit etwas probieren bin ich nun soweit, dass das FileSystem auch dargestellt wird. Mein Problem ist, das er das Icon für einen Ordner erst "aktualisiert", wenn man diesen anklickt; vorher sieht der aus wie eine Datei. Was kann ich tn, damit er bereits beim anklicken entsprechend aussieht?

Hier mein Code:

Mein JTRee, der auf "Klicks" reagiert und die nächste Ebene anzeigen soll (Methode addNextLayer)

Code:
fileTreeJT.getSelectionModel().addTreeSelectionListener( new TreeSelectionListener(){
      public void valueChanged(final TreeSelectionEvent e){
        try {
          DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.getNewLeadSelectionPath().getLastPathComponent();
          Object[] o = node.getUserObjectPath();
          String pfad = "";

          for (int i=1; i<o.length; i++)
            pfad += o[i].toString().endsWith(File.separator)?o[i].toString():o[i].toString()+File.separator;
          if (o.length>1)
            addNextLayer(node, new File( pfad ));

          fileTreeJT.validate();
          fileTreeJT.repaint();

        } catch (Exception error) {}
      }
    });


Zunächst bestimme die Laufwerke, wie ich es hier im Forum gefunden habe
Code:
FileSystemView fsv = FileSystemView.getFileSystemView();
    File files[] = File.listRoots();
    for(File file : files){
      DefaultMutableTreeNode node = new DefaultMutableTreeNode( file );
      dmt.add( node );
      try {
         if (!fsv.isFloppyDrive(file))
           addNextLayer(node, file);
         //System.out.println(file.toString( ) + " " + fsv.getSystemTypeDescription(file)+"   "+file.getCanonicalPath());
      }catch(Exception e) { }
    }

Das anzeigen der erzeugen nächsten Ebene

Code:
  private void addNextLayer(DefaultMutableTreeNode parent, File dir){
    if (parent != null && dir != null && dir.exists() && dir.listFiles() != null){
      File[] files = dir.listFiles();
      for (int i=0; i<files.length; i++ ){
        if (files[i] != null && files[i].exists()){
          DefaultMutableTreeNode node = new DefaultMutableTreeNode(files[i].getName());
          if (files[i].isDirectory()){
            //addNextLayer(node, files[i]); //Rekursion, wenn Ordner

          }
          parent.add( node );
        }
      }
    }
  }


Eine rekursive Methode kommt wohl nicht in Frage, da diese (je nach Anzahl der Laufwerke und Ordner) ewig braucht.

Wie gesagt, es funktioniert so weit alles nur das Symbol kommt nicht.

Milo
 
B

Beni

Gast
Versuch es mal so: überschreib die Methode "isLeaf" von dem Node, und gib "false" zurück.
 

Milo

Bekanntes Mitglied
Hmm,

ich habe es so gemacht:

Code:
class TreeNode extends DefaultMutableTreeNode {
  public TreeNode(File f) {   }
  public TreeNode(String s) {   }
  
  public boolean isLeaf(){
    return false;
  }
}

Jetzt bekomme ich nur noch Ordnersymbole. Des weiteren sind nun beim Hinzufügen die Namen weg, es sind also nur noch Ordner zu sehen. Für letzteres gibt es sicher eine einfach Erklärung -> meine Unwissenheit.

Noch eine Idee?
Milo
 

LoN_Nemesis

Bekanntes Mitglied
Am Konstruktor sehe ich, dass jeder Knoten auf ein File verweist. Ginge dann nicht sowas?

Code:
public boolean isLeaf(){
    return (!file.isDirectory());
  }

Hab nicht den ganzen Thread gelesen, eventuell geht das auch total am Thema vorbei, dann sorry :p
 

Milo

Bekanntes Mitglied
Hi,

es ist nicht jeder ein File, da ich nicht den ganzen Pfad haben möchte, übergebe ich bei addNextLayer() nur einen String (f.getName()).

Milo
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Probleme mit Zugriff auf Dateisystem Windows 10 ( jFileChooser) Java Basics - Anfänger-Themen 17
G Java Dateisystem Java Basics - Anfänger-Themen 4
S Pfad für Dateisystem?? Java Basics - Anfänger-Themen 13
S Umlaute aus Dateisystem entfernen Java Basics - Anfänger-Themen 5
N Dateisystem Java Basics - Anfänger-Themen 4
M JAR-Datei ist nur an einer Stelle im Dateisystem ausführbar Java Basics - Anfänger-Themen 31
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
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

Ähnliche Java Themen

Neue Themen


Oben