Hi @ all
Ja, ich bin neu hier, Ja, ich habe Erfahrung mit Java, Ja, ich habe die SuFu genutzt (und keine befriedigende Antwort gefunden xP) und Ja ... schon wieder mal ein Problem mit dem JFileChooser (hier kurz: jfc)...
Über kurz oder lang geht es um folgendes Problem:
Ich möchte mit dem jfc nur ein Directory auswählen. Dies ist im generellen kein Problem, doch im spezifischen Sinne genau das Directory zu bekommen, welches vom User her wohl verlangt wird ist das Schwierige!
Ich wäre sehr glücklich darüben, wenn ihr Euch kurz einen Moment nehmen könntet um Euch das Code-Exzerpt anzusehen und noch die Schlussfolgerung durchzulesen.
Nun zum Problem das hier entsteht:
Ich verwende die Methode "getCurrentDirectory()" die mir ein File zurückgibt welches im setStatus als toString() zur Geltung kommt.
Annahme: wir befinden uns jetzt im Directory "E:\". Wählt man nun auf "Pfad wählen", also den "OK" Btn sozusagen, bekommt man mit getCurrentDirectory() nur "C:\Users\xyz\Documents" zurück. Dies passiert, wenn man keinen Inhalt des Ordners gewählt hat. Gut, wenn man das weiß, dann wählt man eben einen Unterordner von "E:\" aus. Ohne Beschränkung der Allgemeinheit sei dies "E:\Test". Nun wird "E:\" bei getCurrentDirectory() als toString() zurückgegeben. Der Witz ist nun der, falls man sich in den Ordner "E:\Test" bewegt, und diesen nun eigentlich ausgewählt haben möchte, bekommt man ebenfalls nur "E:\" zurück. Man muss wieder einen Unterordner von "E:\Test" wählen um dann "E:\Test" auch wirklich zu bekommen.
Ich bin in der Überlegung dann mal weitergegangen und versuchte es mit der Alternative "getSelectedFile()", die mir auch ein File zurückgibt und dessen toString() dann den gewünschten Ordner "E:\Test" zurückgibt, wenn man sich nun auch nur in diesem befindet. Allerdings besteht nun das Problem, falls man einen Unterordner wählt (sagen wir mal von "E:\Test" ausgehend "E:\Test\Ordner1") ohne in ihn hineinzugehen, so liefert getSelectedFile() diesen Ordner (also "E:\Test\Ordner1") zurück, obwohl wir uns noch in "E:\Test" befinden.
Verlangt wird die ganze Zeit über nur das Directory in dem man sich befindet, ohne dafür was tun zu müssen. Ist dies in irgendeiner Art möglich?
Fall ihr euch nun die Mühe angetan habt diese Wurscht zu durchlesen und Euch eventuell darüber Gedanken gemacht habt, bin ich Euch schon dankbar ... noch mehr natürlich falls jemand auch eine Lösung aus dieser Misere findet/kennt und sie mir hier mitteilen könnte .
mfg
Sanakan
Ja, ich bin neu hier, Ja, ich habe Erfahrung mit Java, Ja, ich habe die SuFu genutzt (und keine befriedigende Antwort gefunden xP) und Ja ... schon wieder mal ein Problem mit dem JFileChooser (hier kurz: jfc)...
Über kurz oder lang geht es um folgendes Problem:
Ich möchte mit dem jfc nur ein Directory auswählen. Dies ist im generellen kein Problem, doch im spezifischen Sinne genau das Directory zu bekommen, welches vom User her wohl verlangt wird ist das Schwierige!
Ich wäre sehr glücklich darüben, wenn ihr Euch kurz einen Moment nehmen könntet um Euch das Code-Exzerpt anzusehen und noch die Schlussfolgerung durchzulesen.
Code:
JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setDialogTitle("Standardpfadauswahl"); chooser.setApproveButtonToolTipText("Wählt den Ordner als neuen Standardpfad aus."); chooser.setToolTipText("nunmal egal"); chooser.setApproveButtonText("Pfad auswählen"); chooser.setCurrentDirectory(this.currentDirectory_); //currentDirectory_ ist eine Instanzvariable für den letzten verwendeten Pfad int returnVal = chooser.showOpenDialog(this.getMainFrame()); //Methode ist selbsterklärend if (returnVal == JFileChooser.APPROVE_OPTION){ machWasMitFilePfad(chooser.getCurrentDirectory()); this.setStatus("Neuer Standardpfad gesetzt. ( " + chooser.getCurrentDirectory() + " )"); //Ausgabe im Frame this.currentDirectory_ = chooser.getCurrentDirectory(); } else { setStatus("Kein neuer Standardpfad gewählt."); //Ausgabe im Frame }
Ich verwende die Methode "getCurrentDirectory()" die mir ein File zurückgibt welches im setStatus als toString() zur Geltung kommt.
Annahme: wir befinden uns jetzt im Directory "E:\". Wählt man nun auf "Pfad wählen", also den "OK" Btn sozusagen, bekommt man mit getCurrentDirectory() nur "C:\Users\xyz\Documents" zurück. Dies passiert, wenn man keinen Inhalt des Ordners gewählt hat. Gut, wenn man das weiß, dann wählt man eben einen Unterordner von "E:\" aus. Ohne Beschränkung der Allgemeinheit sei dies "E:\Test". Nun wird "E:\" bei getCurrentDirectory() als toString() zurückgegeben. Der Witz ist nun der, falls man sich in den Ordner "E:\Test" bewegt, und diesen nun eigentlich ausgewählt haben möchte, bekommt man ebenfalls nur "E:\" zurück. Man muss wieder einen Unterordner von "E:\Test" wählen um dann "E:\Test" auch wirklich zu bekommen.
Ich bin in der Überlegung dann mal weitergegangen und versuchte es mit der Alternative "getSelectedFile()", die mir auch ein File zurückgibt und dessen toString() dann den gewünschten Ordner "E:\Test" zurückgibt, wenn man sich nun auch nur in diesem befindet. Allerdings besteht nun das Problem, falls man einen Unterordner wählt (sagen wir mal von "E:\Test" ausgehend "E:\Test\Ordner1") ohne in ihn hineinzugehen, so liefert getSelectedFile() diesen Ordner (also "E:\Test\Ordner1") zurück, obwohl wir uns noch in "E:\Test" befinden.
Verlangt wird die ganze Zeit über nur das Directory in dem man sich befindet, ohne dafür was tun zu müssen. Ist dies in irgendeiner Art möglich?
Fall ihr euch nun die Mühe angetan habt diese Wurscht zu durchlesen und Euch eventuell darüber Gedanken gemacht habt, bin ich Euch schon dankbar ... noch mehr natürlich falls jemand auch eine Lösung aus dieser Misere findet/kennt und sie mir hier mitteilen könnte .
mfg
Sanakan
Comment