Das Beispiel definiert eine Methode oeffnen(), die die Routine zum
Erzeugen eines Öffnen-Dialoges enthält.
In ihr wird
zunächst ein Objekt vom Typ
JFileChooser erzeugt, der über das Feld JFileChooser.OPEN_DIALOG
als Öffnen-Dialog ausgewiesen wird. Die JFileChooser-Methode setFileSelectionMode()
nimmt einen int-Wert in Form des Feldes FILES_AND_DIRECTORIES
entgegen, der bestimmt, dass der Dialog sowohl Verzeichnisse als auch
Dateien zeigt. Das Ausgangsverzeichnis lässt sich durch die Methode setCurrentDirectory()
festlegen.
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import javax.swing.JFileChooser;
public class OeffnenDialogClass {
public static void main(String[] args) {
OeffnenDialogClass odc = new OeffnenDialogClass();
odc.oeffnen();
}
private void oeffnen() {
final JFileChooser chooser = new JFileChooser("Verzeichnis wählen");
chooser.setDialogType(JFileChooser.OPEN_DIALOG);
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
final File file = new File("/home");
chooser.setCurrentDirectory(file);
chooser.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent e) {
if (e.getPropertyName().equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)
|| e.getPropertyName().equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY)) {
final File f = (File) e.getNewValue();
}
}
});
chooser.setVisible(true);
final int result = chooser.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
File inputVerzFile = chooser.getSelectedFile();
String inputVerzStr = inputVerzFile.getPath();
System.out.println("Eingabepfad:" + inputVerzStr);
}
System.out.println("Abbruch");
chooser.setVisible(false);
}
}
Um beim Wechsel der jeweiligen Auswahl diese zu aktualisieren, wird der
Dialog bei einem PropertyChangeListener angemeldet, der dies
übernimmt. Dann wird der Dialog sichtbar gesetzt und geöffnet.
Für die Abfrage der betätigten Buttons stellt die Klasse mehrere
int-Werte als Felder bereit, die bei Bedarf abgefragt werden
können. Im Beispiel wird bei Betätigen des ok-Buttons die
ausgewählte Datei als File-Objekt erfasst und dessen Pfad
schließlich auf der Kommandozeile angezeigt. Abschließend wird der
Dialog wieder unsichtbar gesetzt.