Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Gibts in Java sowas wie ne "Select Directory"-Komponente?

Empfohlene Antworten

Veröffentlicht

Ich suche eine vorgefertigte Java-Komponente, mit der ich automatisch eine Übersicht über das Dateisystem des Rechners bekomme, in der ich dann ein bestimmtes Verzeichnis auswählen kann und dies dann als Rückgabewert bekomme?

Um es verständlich auszudrücken: eine Verzeichnisauswahl halt. ;)

In Delphi gibts dafür z.B. den Befehl SelectDirectory.

Muss ich mir jetzt ne entsprechende Klasse selber bauen oder gibts sowas schon in der Standard-Java-Bibliothek? Oder kann ich ne andere Klasse entsprechend modifizieren?

thx

Hmmm, so ganz verstehe ich die Frage nicht, aber vielleicht meinst Du ja sowas wie "JFileChooser".

Nein nein, JFileChooser oder auch FileDialog sind ja zum auswählen einer Datei , ich möchte aber das der User ein Verzeichnis auswählen kann (in dem dann in meinem Programm bestimmte Dateien mit auszulesenden Daten liegen).

Oder kann man JFileChooser bzw. FileDialog entsprechend modifizieren?

Ich weiss zwar nicht ob die oben angegebene Klasse das richtige für dich ist, auf jeden Fall kannst du dann in der DialogBox dir ne Datei mit Verzeichnis aussuchen.

Konstruktoren: public FileDialog(Frame parent)

public FileDialog(Frame parent, String title)

public FileDialog(Frame parent, String title, int mode)

parent: Frame, in dem der Dialog enthalten ist

title: Titel

mode: Modus ( 0 - laden; 1 - speichern)

Methoden: getFile() Liefert die ausgewählte Datei

getDirectory() Liefert das ausgewählte Verzeichnis

show() Zeigt die DialogBox

Hoffe Du kannst damit was anfangen...

Ich war wohl nen bisschen zu langsam....

Klar kannst Du den JFileChooser so "konfigurieren", daß er nur Verzeichnisse anzeigt.

Dazu nimmst Du am besten das FileFilter interface, damit hast du dann fast narrenfreiheit :)

Jo Axl, auf die Idee bin ich auch schon gekommen. ;)

Trotzdem danke

Naja, notfalls bau ich mir selber so ne Klasse als JDialog, mit nem JTree drinnen. Man, das wird dann ja mehr arbeit als das eigentliche Programm. ;)

Original geschrieben von GrandmasterZ

Jo Axl, auf die Idee bin ich auch schon gekommen. ;)

Trotzdem danke

Naja, notfalls bau ich mir selber so ne Klasse als JDialog, mit nem JTree drinnen. Man, das wird dann ja mehr arbeit als das eigentliche Programm. ;)

Neee, das geht mit dem FileChooser! Das mit dem JTree mache ich gerade für ein Programm zur Verwaltung der PortsCollection in FreeBSD....meine Faulheit und eine kaputte Festplatte haben mcih aber erstmal das Projekt auf Eis legen lassen :P

JFileChooser ist für OttoNormaluser aber auch besser, denn es sieht "wie gewohnt" aus. Besonders wenn mensch die Oberfläche mit dem UIManager anpasst.

Ich bin mir da nicht so sicher ob das mit dem FileFilter funktioniert. Ich kann damit zwar bestimmte Dateiendungen und vielleicht sogar alle Dateien ausblenden, aber im Endeffekt ist der FileChooser doch darauf ausgelegt ne Datei als Rückgabewert zu liefern und kein Verzeichnis, oder?

Man könnte natürlich von dem Rückgabestring den Dateinamen am Ende abhacken, aber so prickelnd wäre die Lösung dann eigentlich auch nicht.

Ich versuchs trotzdem mal, aber wenn jemand noch ne andere Idee hat....:D

Neee, das geht mit dem FileChooser! Das mit dem JTree mache ich gerade für ein Programm zur Verwaltung der PortsCollection in FreeBSD....meine Faulheit und eine kaputte Festplatte haben mcih aber erstmal das Projekt auf Eis legen lassen :P

Scheints ja sehr überzeugt davon zu sein. ;)

Wenn du Zeit und Muße hast kannst du mir ja mal ein Beispiel coden wie dus dir vorstellst. :D

Hast Du schon mal an die Methode "isDirectory()" von File gedacht? Jedenfalls kann mensch 100% den JFileChooser so hinbiegen, daß er nur Verzeichnise anzeigt

Original geschrieben von GrandmasterZ

Scheints ja sehr überzeugt davon zu sein. ;)

Wenn du Zeit und Muße hast kannst du mir ja mal ein Beispiel coden wie dus dir vorstellst. :D

Werd ich machen.... aber ob das heute ncoh was wird? Muß noch ne Stunde hier hocken.... mit Glück schaff ichs, aber ein andere hat schon vorher um ein Beispiel gebeten.... siehe Thread "Swing :)"

Also ich hab jetzt mal geschaut, sowohl bei JFileChooser als auch FileDialog kannst du nur eine Datei auswählen. FileDialog macht gar nix wenn man ein Verzeichnis markiert und ok drückt, JFileChooser öffnet einfach das Verzeichnis.

Ich kann bei meinem Programm auch nicht davon ausgehen das in dem Verzeichnis eine Datei ist, deswegen kann ich nicht einfach ne Datei aus dem gewünschten Verzecihnis anklicken und aus dem Rückgabewert dann den Verzeichnisnamen extrahieren.

Oder hab ich dich jetzt völlig falsch verstanden? ;)

Du kannst den JFileChooser modifizieren. Sicher.... hab ich selbst schon gemacht! Und wenn Du es nicht glaubst, zieh dir Netbeans. Dort ist nämlich unter dem Punkt "mount LocalDirectory" genau so ein FileChooser wie du ihn brauchst. Er listet nur die Verzeichnisse auf. Das geheimnis liegt im FileFilter. Wenn Du bis morgen Zeit hast, hack ich mal was für Dich zusammen

Okay, dann glaub ich dir das einfach mal. Ich versuch dann evtl. auch heut abend da doch noch was hinzukriegen.

Danke dir auf jeden Fall für deinen Input :)

Hey, brauchst nix mehr zu schreiben:

Bei den Demos vom JDK gibts ein Programm namens FileChooserDemo, wo das was ich brauche auch umgesetzt ist. Ich wühl mir das nötige dann da aus dem Quelltext.

nochmal thx für deine hilfe

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.