FileDialog - Filter

thomy800

Erfahrenes Mitglied
Hallo,

Ich möchte über einen FileDialog Dateien laden bzw. speichern. Allerdings sollen nicht alle Dateitypen angezeigt werden, sondern nur bestimmte. Ich nehme mal an, man soll das über einen FileFilter machen, aber funktioniert der irgendwie nicht. Zum Testen habe ich die Methode geschrieben:

Java:
        FileDialog openDialog=new FileDialog(this,"Öffnen",FileDialog.LOAD);
        openDialog.setFilenameFilter(new FilenameFilter() {
            public boolean accept(File dir, String name) {
                System.out.println(name);
                return true;
            }
        });
        openDialog.setVisible(true);
        String pfad=openDialog.getDirectory()+openDialog.getFile();
        //...

Allerdings scheint der Filter einfach ignoriert zu werden... es wird keine Ausgabe gemacht...
Weiß jemand, woran das liegt?

mfG thomy
 
Hallo,

/**
* Sets the filename filter for this file dialog window to the
* specified filter.
* Filename filters do not function in Sun's reference
* implementation for Microsoft Windows.
*
* @param filter the specified filter
* @see java.io.FilenameFilter
* @see java.awt.FileDialog#getFilenameFilter
*/
public synchronized void setFilenameFilter(FilenameFilter filter) {

nimm besser nen JFileChooser:
Java:
/**
 * 
 */
package de.tutorials;

import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.UIManager;
import javax.swing.filechooser.FileFilter;

import com.sun.java.swing.plaf.windows.WindowsLookAndFeel;

/**
 * @author Tom
 * 
 */
public class FileDialogExampel {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {

		UIManager.setLookAndFeel(new WindowsLookAndFeel());

		JFileChooser fileChooser = new JFileChooser(new File("c:/"));
		fileChooser.setAcceptAllFileFilterUsed(false);
		fileChooser.setFileFilter(new FileFilter() {
			@Override
			public boolean accept(File f) {
				return f.isDirectory() || f.getName().matches(".*\\.(txt|csv)");
			}

			@Override
			public String getDescription() {
				return "*.txt, *.csv";
			}
		});
		fileChooser.showOpenDialog(null);
		System.out.println(fileChooser.getSelectedFile());
	}
}

Gruß Tom
 
Zurück