JTree 'Updaten'

Von: , Frage gestellt am Do, 3. Mai 2001

Moin

ich versuch einen Verzeichnissbaum per JTree darzustellen. Da das Verzeichnis aber nicht auf dem ausführenden Rechner liegt, sondern auf einem Sever (der sehr langsam ist) kann ich nicht die ganze Struktur "sofort" rüberladen.

Ergo änderten sich meine TreeNodes (vor allem die Anzahl ihrer Kinder) von Zeit zu Zeit. (wenn der Server mal was von sich gibt)

Das kriegt der JTree aber natürlich nicht mit. Beim Erzeugen des JTree übergeb ich ihm den Root-knoten, es gibt kein TreeModel.

der Aufruf "MeinBaum.treeDidChange()" hilft nicht.

Was könnte man sonst noch aufrufen ?

3 Antworten zu dieser Frage

  1. Antwort von nach 4 Tagen 0 hilfreich
    Re: JTree 'Updaten'

    Moin Das kriegt der JTree aber natürlich nicht mit. Beim Erzeugen
    des JTree übergeb ich ihm den Root-knoten, es gibt kein
    TreeModel.
    der Aufruf "MeinBaum.treeDidChange()" hilft nicht.

    Was könnte man sonst noch aufrufen ?
    Du brauchst ein DefaultTreeModel.
    Versuch doch mal folgendes:

    DefaultTreeModel model = new DefaultTreeModel(node);
    JTree tree = new JTree(model);
    ...
    model.nodeChanged(node);
    


    Probiert hab ich's nicht, aber vielleicht funktioniert's ja?

    MfG, Jan-Peter

  2. Antwort von nach 6 Tagen 0 hilfreich
    JTree 'Updaten' - auch gerne dynamisch...

    ich versuch einen Verzeichnissbaum per JTree darzustellen. Da
    das Verzeichnis aber nicht auf dem ausführenden Rechner liegt,
    sondern auf einem Sever (der sehr langsam ist) kann ich nicht
    die ganze Struktur "sofort" rüberladen.
    Hallo,
    zufällig hat mir gerade jemand eine sehr ähnliche Frage gestellt.
    Zwar auf einem etwas niedrigeren Niveau, aber egal.
    Ich habe darauf das hier geantwortet, könnte dich ja vielleicht
    auch interessieren:

    --------------------

    > ich möchte mit Java in einem Programmfenster den Inhalt eines
    > Laufwerks als Verzeichnisbaum darstellen, bin aber leider noch
    > nicht so Firm in den verschiedenen Java-Klassen.
    > Vielleicht kannst Du eine Empfehlung aussprechen was man dabei
    > berücksichtigen sollte?

    [Hier waren ein paar Erklärungen zum Thema Verzeichniszugriff]

    Danach schaust du dir die Klasse javax.swing.JTree und das
    zugehörige Packet javax.swing.tree.* an. Darin findest du dann
    die Klassen, die dir erlauben, die erhaltenen Informationen als
    TreeModel darzustellen. Wenn du erstmal ein solches implementiert
    hast (dürfte für den Fall von Verzeichnissen nicht sehr schwer
    sein), dann kannst du das in deinen JTree reintun und - voilà -
    es wird angezeigt...

    Das Hauptteil ist also, das Model zu schreiben, der Rest geht
    dann von alleine (ist bei Swing eigentlich fast immer so).

    Idee: Pro Verzeichnis einen Knoten, der jeweils seinen eigenen
    Verzeichnispfad kennt und bei Abfrage seiner Kinder mal schnell
    im Verzeichnis nachschaut und eine neue Kinderliste mit
    Verzeichnis-Knoten und Datei-Blättern (also kinderlose Knoten,
    bei denen isLeaf() "true" liefert) zurückgibt. So bleibt das
    ganze auch noch dynamisch und passt sich Änderungen im
    Dateisystem durch Neuabfrage bei jedem Zugriff automatisch an.

    -------------------

    Also im Wesentlichen ging es einfach darum, ein eigenes Modell zu
    schreiben, das dann dynamisch auf die Verzeichnisse zugreift. So
    bekommst du jede Änderung automatisch beim Zugriff mit...

    Der Vorteil von Swing ist ja gerade die Unabhängigkeit der
    Anzeige von den Daten. Du schreibst nur Modelle und die Anzeige
    ist dann vorimplementiert...

    Gruß,
    Stefan :)

    • Antwort von nach 6 Tagen 0 hilfreich
      thx, also gehts doch nicht ohne Model o.T.

      Schade....

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!