Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

FileChooser-Problem

2 views
Skip to first unread message

Markus Krebl

unread,
Feb 24, 2002, 12:31:40 PM2/24/02
to
Hallo !

Ich will einen FileChooser implementieren, mit dem der Benutzer ein
Verzeichnis auswählen kann. Wenn ich ein Verzeichnis wähle und auf
"Open" klicke, dann wird dessen Inhalt angezeigt. Das will ich aber
nicht, sondern ich will damit den Namen des angeklickten Verzeichnisses
herausziehen und daß sich der Dialog dann schließt.

Hab mir zumindest mal einen Filter geschrieben, damit im FileChooser nur
Verzeichnisse angezeigt werden.

private class VerzeichnisFilter extends
javax.swing.filechooser.FileFilter
{
public boolean accept (File file)
{
return (file.isDirectory ()) ;
}

public String getDescription () { return ("Verzeichnisse") ; }
}

Wäre dankbar wenn mir jemand helfen könnte !

mfG Markus

Christian Hauser

unread,
Feb 25, 2002, 10:00:32 AM2/25/02
to

> Ich will einen FileChooser implementieren, mit dem der Benutzer ein
> Verzeichnis auswählen kann. Wenn ich ein Verzeichnis wähle und auf
> "Open" klicke, dann wird dessen Inhalt angezeigt. Das will ich aber
> nicht, sondern ich will damit den Namen des angeklickten Verzeichnisses
> herausziehen und daß sich der Dialog dann schließt


Probier mal die Methode setFileSelectionMode von JFileChooser:

setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);


Gruss, Hausi

Frank Zapf

unread,
Feb 25, 2002, 10:41:28 AM2/25/02
to
Christian Hauser schrieb:

Bleibt noch zu beachten daß bei Doppelklick trotzdem in das Verzeichnis
hineingewechset wird. Will man einen komfortablen DIR-Chooser haben, so
muß man wohl selber ran und etwas in Tree-form bauen. Siehe auch
JBuilder ab Version 4.

Gruß
Frank

Christian Wederhake

unread,
Feb 25, 2002, 2:09:14 PM2/25/02
to
"Frank Zapf" <fz...@benke.de> schrieb

> Christian Hauser schrieb:
>>
>>> Ich will einen FileChooser implementieren, mit dem der Benutzer ein
>>> Verzeichnis auswählen kann. [...]

>> Probier mal die Methode setFileSelectionMode von JFileChooser:
>> setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
> Bleibt noch zu beachten daß bei Doppelklick trotzdem in das Verzeichnis
> hineingewechset wird. Will man einen komfortablen DIR-Chooser haben, so
> muß man wohl selber ran und etwas in Tree-form bauen.

Nut btw: Ich hatte mal eine aufbaubare Version eines solchen gebastelt,
ist allerdings schon eine weile her.. Mal nachschauen...:
http://www.cawgod.com/ddsutil/dirchooser.jar
Undokumentiert allerdings...

> Siehe auch JBuilder ab Version 4.

-v

Ciao
Chris

--
"Durch eine Öffnung unserer Universitaeten für Frauen liegt eine so
große Gefahr vor, das Niveau des Universitätsstudiums herabzudrücken,
daß wir uns dagegen entschieden verwahren muessen."
(Prof. Dr. phil. Johannes Conrad *1839)

Frank Zapf

unread,
Feb 26, 2002, 5:14:12 AM2/26/02
to
Christian Wederhake schrieb:

>
> "Frank Zapf" <fz...@benke.de> schrieb
> > Christian Hauser schrieb:
> >>
> >>> Ich will einen FileChooser implementieren, mit dem der Benutzer ein
> >>> Verzeichnis auswählen kann. [...]
> >> Probier mal die Methode setFileSelectionMode von JFileChooser:
> >> setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
> > Bleibt noch zu beachten daß bei Doppelklick trotzdem in das Verzeichnis
> > hineingewechset wird. Will man einen komfortablen DIR-Chooser haben, so
> > muß man wohl selber ran und etwas in Tree-form bauen.
>
> Nut btw: Ich hatte mal eine aufbaubare Version eines solchen gebastelt,
> ist allerdings schon eine weile her.. Mal nachschauen...:
> http://www.cawgod.com/ddsutil/dirchooser.jar
> Undokumentiert allerdings...

*saug*

geht aber leider nicht.

C:\Java\Tools_and_Libaries\dirChooser>java -jar dirchooser.jar
count = 0, total = 12
Exception in thread "main" java.util.zip.ZipException: invalid CEN header (bad s
ignature)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:112)
at java.util.jar.JarFile.<init>(JarFile.java:117)
at java.util.jar.JarFile.<init>(JarFile.java:55)

Wenn, dann wären auch Source-Files nicht schlecht ;)

Da fällt mir ein, im Java Magazin 08/2001, Seite 38, Artikel "Oberflächen mit Schwung"
wurde ein Fesplattenexplorer gebaut, der auch einen Tree zum Verzeichnis wählen
hat. Vieleicht kann man dort was klauen.

www.javamagazin.de

Vielleicht bietet das neue JDK 1.4 auch was besseres. Der
JFileChooser hat sich ja stark zum besseren gewandelt.

Gruß
Frank

Eine Gesellschaft, die das Elend, eine Religion, die die
Hölle, eine Humanität, die den Krieg zuläßt, erscheinen
mir als minderwertige Gesellschaft, Religion und Humanität.
[Victor Hugo]

Christian Wederhake

unread,
Feb 26, 2002, 9:15:12 AM2/26/02
to
"Frank Zapf" <fz...@benke.de> schrieb
> Christian Wederhake schrieb:

>> http://www.cawgod.com/ddsutil/dirchooser.jar
>> Undokumentiert allerdings...
> *saug*
> geht aber leider nicht.
> C:\Java\Tools_and_Libaries\dirChooser>java -jar dirchooser.jar
> count = 0, total = 12

Wo kommt das denn her?

> Exception in thread "main" java.util.zip.ZipException:
> invalid CEN header (bad signature)
> at java.util.zip.ZipFile.open(Native Method)

> Wenn, dann wären auch Source-Files nicht schlecht ;)

Die sollten im jar selber drin sein...
Versuch' einfach mal, das Ding manuell (mit einem externen Zipper)
zu entpacken... Zu der Zeit, wo das Ding entstand, gab' es wohl ab und
an einige Probleme mit Jar-Kompaktibilitaeten...

> Da fällt mir ein, im Java Magazin 08/2001, Seite 38, Artikel "Oberflächen mit Schwung"
> wurde ein Fesplattenexplorer gebaut, der auch einen Tree zum Verzeichnis wählen
> hat. Vieleicht kann man dort was klauen.
> www.javamagazin.de

Karsten?

> Vielleicht bietet das neue JDK 1.4 auch was besseres. Der
> JFileChooser hat sich ja stark zum besseren gewandelt.

Hat er, weil er jetzt, zumindest unter Win wesentlich naeher
an der OS-UI implementiert ist und auch das OS zum Aufloesen
einiger Datein-Parameter nutzt...

Ciao
Chris

--
"Wenn ein Weib gelehrte Neigungen hat, so ist gewoehnlich etwas an
ihrer Geschlechtlichkeit nicht in Ordnung." (Friedrich Nietzsche *1844)

Frank Zapf

unread,
Feb 27, 2002, 4:59:01 AM2/27/02
to
Christian Wederhake schrieb:
>
> "Frank Zapf" <fz...@benke.de> schrieb
>
> Wo kommt das denn her?
>
> > Exception in thread "main" java.util.zip.ZipException:
> > invalid CEN header (bad signature)
> > at java.util.zip.ZipFile.open(Native Method)
> > Wenn, dann wären auch Source-Files nicht schlecht ;)
>
> Die sollten im jar selber drin sein...
> Versuch' einfach mal, das Ding manuell (mit einem externen Zipper)
> zu entpacken... Zu der Zeit, wo das Ding entstand, gab' es wohl ab und
> an einige Probleme mit Jar-Kompaktibilitaeten...

Auch WinZip meint, das Archiv ist korrupt.

>
> > Da fällt mir ein, im Java Magazin 08/2001, Seite 38, Artikel "Oberflächen mit Schwung"
> > wurde ein Fesplattenexplorer gebaut, der auch einen Tree zum Verzeichnis wählen
> > hat. Vieleicht kann man dort was klauen.
> > www.javamagazin.de
>
> Karsten?
>

Ja, Lentzsch (klingt ja wie ein Sachse mit dem "tzsch")

Gruß
Frank (auch Sachse)

Michael Schmidt

unread,
Feb 27, 2002, 5:26:21 AM2/27/02
to
Frank Zapf wrote:


>>>Da fällt mir ein, im Java Magazin 08/2001, Seite 38, Artikel "Oberflächen mit Schwung"
>>>wurde ein Fesplattenexplorer gebaut, der auch einen Tree zum Verzeichnis wählen
>>>hat. Vieleicht kann man dort was klauen.
>>>www.javamagazin.de
>>>
>>Karsten?
>>
>>
> Ja, Lentzsch (klingt ja wie ein Sachse mit dem "tzsch")
>

Karsten ist hier sehr häufig zugange, kommt aber aus Kiel.
Such mal nach seinen Artikeln bei Google.
Seltsamerweise finde ich hier in dclj keine Postings von anderen Autoren
des Javamagazins (bzw. andersherum, mir kommen im Javamagazin kaum Namen
von hier bekannt vor).

Waren nicht Codeauszüge von JDiskReport auf der Javamagazin-CD von damals?

Micha

--
Homepage & FAQ von de.comp.lang.java: http://www.dclj.de

Christian Wederhake

unread,
Feb 27, 2002, 9:29:22 AM2/27/02
to
"Frank Zapf" <fz...@benke.de> schrieb

> Christian Wederhake schrieb:
>> "Frank Zapf" <fz...@benke.de> schrieb

>>> Wenn, dann wären auch Source-Files nicht schlecht ;)


>> Die sollten im jar selber drin sein...

Genauer gesagt finden sich im jar nur die Sourcen ;-)

>> Versuch' einfach mal, das Ding manuell (mit einem externen Zipper)
>> zu entpacken... Zu der Zeit, wo das Ding entstand, gab' es wohl ab und
>> an einige Probleme mit Jar-Kompaktibilitaeten...
> Auch WinZip meint, das Archiv ist korrupt.

Dann ist, wuerde ich sagen, bei Deinem Download etwas schiefgelaufen...
Ichh hab' gerade nochmal ein fc mit meiner lokalen Version und der
online-verfuegbaren gemacht: No differences... Ebenso konnte mein
WinRAR beide problemlos oeffenen und entpacken....
Selbiges gilt fuer jar selber...

Ciao
Chris

--
"Interesse gehört in die Gruppe der spontanten Gefühle."
(Sebastian Fries in einem privaten Telefongespräch)

Frank Zapf

unread,
Feb 27, 2002, 10:13:43 AM2/27/02
to
Michael Schmidt schrieb:


Im Artikel steht: "Quellcode auf der CD". Ich habe noch nicht nachgesehen
was und wieviel. Mir haben die DirChooser-Qualitäten des JFileChooser bisher
immer noch ausgereicht.

Gruß
Frank

Frank Zapf

unread,
Feb 27, 2002, 10:52:29 AM2/27/02
to
Christian Wederhake schrieb:
>
> "Frank Zapf" <fz...@benke.de> schrieb
> > Christian Wederhake schrieb:
> >> "Frank Zapf" <fz...@benke.de> schrieb
>
> >>> Wenn, dann wären auch Source-Files nicht schlecht ;)
> >> Die sollten im jar selber drin sein...
>
> Genauer gesagt finden sich im jar nur die Sourcen ;-)
>
> >> Versuch' einfach mal, das Ding manuell (mit einem externen Zipper)
> >> zu entpacken... Zu der Zeit, wo das Ding entstand, gab' es wohl ab und
> >> an einige Probleme mit Jar-Kompaktibilitaeten...
> > Auch WinZip meint, das Archiv ist korrupt.
>
> Dann ist, wuerde ich sagen, bei Deinem Download etwas schiefgelaufen...
> Ichh hab' gerade nochmal ein fc mit meiner lokalen Version und der
> online-verfuegbaren gemacht: No differences... Ebenso konnte mein
> WinRAR beide problemlos oeffenen und entpacken....
> Selbiges gilt fuer jar selber...

Ok sorry. Ich hatte den Download auch mehrfach wiederholt, aber
den hat er dann wohl aus dem Browser-Cache genommen und das File war
immer wieder fehlerhaft. Mit GetRight ging es jetzt problemlos downzuloaden.

Du hättest dem Teil ruhig noch eine main() spendieren können ;)

Der Konstruktor ohne Parameter führt bei mir zu einer
NullpointerException. Ansonsten sieht es ganz net aus.

Gruß
Frank

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

import ds.util.swing.JDirectoryChooser;

public class TestDirChooser {
public static void main(String args[]) {
final JFrame frame = new JFrame("TestDirChooser");

final JDirectoryChooser dirChooser = new JDirectoryChooser("C:\\");
dirChooser.setPreferredSize(new Dimension(300,300));
dirChooser.setMinimumSize(new Dimension(200,200));

// handle window close
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

// set up panels with buttons

JPanel panel = new JPanel();

JButton button = new JButton("Show File Chooser Dialog");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser filechooser = new JFileChooser();
filechooser.setAccessory(dirChooser);
filechooser.revalidate();
filechooser.showOpenDialog(frame);
}
});

panel.add(button);
// display
panel.add(dirChooser);

frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}

Christian Wederhake

unread,
Feb 27, 2002, 11:45:27 AM2/27/02
to
"Frank Zapf" <fz...@benke.de> schrieb
> Christian Wederhake schrieb:

> Du hättest dem Teil ruhig noch eine main() spendieren können ;)

Wozu? Und was haette darin stehen sollen?

> Der Konstruktor ohne Parameter führt bei mir zu einer
> NullpointerException.

Wie jetzt? Was jetzt? Koenntest Du mir die genaue Zeile geben?

> Ansonsten sieht es ganz net aus.

Geschmackssache... Wenn ich mir jetzt im Nachhinein den Code
von vor 1 Jahr und knapp 4 Tagen anschaue...: *schauder*
Und ausserdem: Der ist alles andere als vollstaendig und da waere noch
so einiges dran zu tun. UI-Support bspw. fehlt voellig... Einzig
eine kleine Konfigurationsmoeglichkeit ueber ein Property-File
ist moeglich... Keine UIDefaults gar nichts... Auch die Actions finden
sich nicht in der ActionMap, KeyBindings sind nicht anstaendig
implementiert, und das Layout ist mies... Und diese Liste koennte ich
noch eine Weile fortsetzen... Fuerchterlich...
Aber wenigstens hab' ich on-demand-Knotenerstellung schon drin :-)
Und fuer die Arbeit weniger Stunden (wieviel eigentlich? Muesste ich mal
bei Google nachschlagen) ist das fuer ein Demo doch ganz ok...

Ciao
Chris

--
Weib (Weibheit, Weiblichkeit) siehe Mann.
(aus einem Lexikon um 1860)

Holger Jödicke

unread,
Mar 1, 2002, 2:31:21 AM3/1/02
to
Hallo,

Frank Zapf wrote:
>
> [Problem zum FileChooser...]

> Bleibt noch zu beachten daß bei Doppelklick trotzdem in das
> Verzeichnis hineingewechset wird.

Für das Problem hab ich folgenden Workaround:

chooser.addPropertyChangeListener(
JFileChooser.DIRECTORY_CHANGED_PROPERTY,
new PropertyChangeListener()
{
public void propertyChange(PropertyChangeEvent evt)
{
chooser.setSelectedFile(null);
}
});

Holger

--
Portal Software (Hamburg) GmbH | Tel: +49 (04106) 760-285
Ernst-Abbe-Straße 10 | Fax: +49 (04106) 760-199
25451 Quickborn, Germany | Holger....@portal.com
http://www.portal.com

Frank Zapf

unread,
Mar 1, 2002, 3:48:15 AM3/1/02
to
Holger Jödicke schrieb:

>
> Hallo,
>
> Frank Zapf wrote:
> >
> > [Problem zum FileChooser...]
>
> > Bleibt noch zu beachten daß bei Doppelklick trotzdem in das
> > Verzeichnis hineingewechset wird.
>
> Für das Problem hab ich folgenden Workaround:
>
> chooser.addPropertyChangeListener(
> JFileChooser.DIRECTORY_CHANGED_PROPERTY,
> new PropertyChangeListener()
> {
> public void propertyChange(PropertyChangeEvent evt)
> {
> chooser.setSelectedFile(null);
> }
> });
>
Gute Idee ! Müßte aber IMHO noch rein, daß er nur
im Falle von selectionMode == JFileChooser.DIRECTORIES_ONLY
so reagiert.

Ich glaube im JDK 1.4 regiert er jetzt genau so.

Gruß
Frank

0 new messages