import javax.swing.JFileChooser;
//Erzeuge neuen JFileChooser JFileChooser chooser = new JFileChooser(); //Filtern der Auswahlmöglichkeiten //Beschreibung //Extension chooser.setFileFilter(new FileNameExtensionFilter("Image File .jpg" ,"jpg")); //Titel des Dialogs festlegen chooser.setDialogTitle("Öffne Image File"); //Typ des Dialogs festlegen chooser.setDialogType(JFileChooser.OPEN_DIALOG); //ActionListener dem Filechooser hinzufügen chooser.addActionListener(new ActionListener() { @Override //Action Inhalt definieren public void actionPerformed(ActionEvent e) { //Angeben was mit dem Dialog nach dem Klicken auf öffnen geschehen soll if (e.getActionCommand().equals(JFileChooser.APPROVE_SELECTION)) { //Ausgewähltes File einer Variable zuordnen File file = chooser.getSelectedFile(); //Prüfen ob das File existiert falls nicht abbrechen File filePath = file.getAbsoluteFile(); if (filePath == null) { return; } /* * * Angeben was mit dem File geschehen soll * */ } }); chooser.showOpenDialog(null) }
//Erzeuge neuen JFileChooser JFileChooser chooser = new JFileChooser(); //Filtern der Auswahlmöglichkeiten //Beschreibung //Extension chooser.setFileFilter(new FileNameExtensionFilter("Image File .jpg","jpg")); //Titel des Dialogs festlegen chooser.setDialogTitle("Öffne Image File"); //Typ des Dialogs festlegen chooser.setDialogType(JFileChooser.OPEN_DIALOG); //ActionListener dem Filechooser hinzufügen chooser.addActionListener(new ActionListener() { @Override //Action Inhalt definieren public void actionPerformed(ActionEvent e){ //Angeben was mit dem Dialog nach dem Klicken auf öffnen geschehen soll if (e.getActionCommand().equals(JFileChooser.APPROVE_SELECTION)) { //Ausgewählte Files in ein Array File[] files = chooser.getSelectedFile(); //für jedes File nachfolgenden Code ausführen for (File file : files) { //Prüfen ob das File existiert falls nicht abbrechen File filePath = file.getAbsoluteFile(); if (filePath == null) { return; } /* * * Angeben was mit dem File geschehen soll * */ } } }); chooser.showOpenDialog(null) }
jFileChooser.setDialogType(/*Art des Dialogs*/);
//Öffnen Dialog anzeigen JFileChooser.OPEN_DIALOG //Speichern Dialog anzeigen JFileChooser.SAVE_DIALOG //Dialog selbst definieren JFileChooser.CUSTOM_DIALOG
TODO: Custom Dialog
public void action(e) { //Erzeuge neuen JFileChooser JFileChooser chooser = new JFileChooser(); //Filtern der Auswahlmöglichkeiten chooser.setFileFilter(new FileNameExtensionFilter("Image File .jpg",//Beschreibung des Files "jpg" //Extension )); //Titel des Dialogs festlegen chooser.setDialogTitle("Öffne Image File"); //Typ des Dialogs festlegen chooser.setDialogType(JFileChooser.OPEN_DIALOG); //ActionListener dem Filechooser hinzufügen chooser.addActionListener(new ActionListener() { @Override //Action Inhalt definieren public void actionPerformed(ActionEvent e) { //Angeben was mit dem Dialog nach dem Klicken auf öffnen geschehen soll if (e.getActionCommand().equals(JFileChooser.APPROVE_SELECTION)) { //Leeres File erzeugen File file = null; //Leeres FileObject erzeugen FileObject fo = null //Leerer Output OutputStream os = null; //Schreibversuch durchführen try { //file von jFileChooser abrufen file = jFileChooser.getSelectedFile(); //Wenn file bereits existiert if (file.existst()) { //Abfrage soll File überschriben werden? NotifyDescriptor d = new NotifyDescriptor.Confirmation( "Datei überschreiben?", NotifyDescriptor.YES_NO_CANCEL_OPTION ); //Abfrage anzeigen und Ergebnis der Auswahl in Variable speichern final Object dialogResult = DialogDisplayer.getDefault().notify(d); //Bei klick auf NEIN if (dialogResult == NotifyDescriptor.NO_OPTION) { //Rekursivaufruf der action action(e); //action verlassen return; } //Bei klick auf abbrechen if (dialogResult == NotifyDescriptor.CANCEL_OPTION) { //action verlassen return; } //Bei klick auf Ja if (dialogResult == NotifyDescriptor.YES_OPTION) //Nichts unternehmen und Schleife laufen lassen } } //FileObject mit File erstellen fo = FileUtil.createData(file); //OutputStream öffnen os = fo.getOutputStream(); /* * Hier wird definiert was gespeichert werden soll * */ //OutputStream schließen os.close; //Prüfen ob das File existiert falls nicht abbrechen File filePath = file.getAbsoluteFile(); if (filePath == null) { return; } //Exceptions abfangen } catch (IOException ex) { Exceptions.printStackTrace(ex); //Mit finally sicherstellen dass OutputStream wieder geschlossen wird } finally { if (os != null) { try { os.close(); } catch (IOException ex) { Exceptions.printStackTrace(ex); } } } } } }
chooser.setFileFilter(new FileNameExtensionFilter("Image File .jpg", //Beschreibung "jpg" //Extension )); //Für mehrere FileExtensions einfach durch Komma trennen //Beschreibung chooser.setFileFilter(new FileNameExtensionFilter("Image File .jpg, "jpg", //Extension "png", //Extension "gif" //Extension ));
private File projectDirectory = new File(); public void changeDirectory() { JFileChooser fc = new JFileChooser(); fc.setFileFilter( new FileFilter() { @Override public boolean accept( File f ) { return f.isDirectory(); } @Override public String getDescription() { return "Verzeichnisse"; } } ); int state = fc.showOpenDialog( null ); if ( state == JFileChooser.APPROVE_OPTION ) { projectDirectory = fc.getSelectedFile(); jTextField1.setText(projectDirectory.getName()); } }Einfacher:
JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); int state = chooser.showOpenDialog(null); if (state == JFileChooser.APPROVE_OPTION){ projectDirectory = chooser.getSelectedFile(); }
private String pathReminder = "/"; public void actionPerformed(ActionEvent e) { //an dieser stelle wird der Pfad gesetzt der geöffnet werden soll final JFileChooser fc= new JFileChooser(pathReminder); File fileDir = fc.getCurrentDirectory(); pathReminder = fileDir.getAbsolutePath();