Ein Öffnen-Dialog zum öffnen von Dateien und Verzeichnissen
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, das ü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. Der Ausdruck chooser.setFileHidingEnabled(false);
bewirkt, dass auch versteckte Dateien angezeigt werden.
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) {
SwingUtilities.invokeLater(() -> oeffnen());
}
private static void oeffnen() {
final JFileChooser chooser = new JFileChooser("Verzeichnis wählen");
chooser.setDialogType(JFileChooser.OPEN_DIALOG);
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setFileHidingEnabled(false);
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.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.