2012-03-27 7 views
3

Ich baue einen JFileFilter auf einem JFileChooser, aber ein Fehler tritt auf, wo ich den Code setFileFilter habe und meine IDE die Informationen liefert 'Die Methode setFileFilter (FileFilter) im Typ JFileChooser ist nicht anwendbar für die Argumente (neuer FileFilter() {}) '. Ich bin mir aber sicher, dass ich es vorher in diesem Format gemacht habe und es war in Ordnung. Kann mir jemand helfen zu finden und zu verstehen, warum das nicht funktioniert? Vielen Dank!Java - setFileFilter Problem

JFileChooser chooser = new JFileChooser(); 
     chooser.setDialogTitle("Open File"); 
     chooser.setFileFilter(new FileFilter(){ 

      @Override 
      public boolean accept(File f) { 
       String fName = f.getName().toUpperCase(); 
       if (fName.endsWith(".TXT") || f.isDirectory()) { 
        return true; 
       } else { 
        return false; 
       } 
      } 

      public String getDescription() { 
       return "Text File (*.txt)"; 
      } 

     }); 
+0

Sind Sie sicher, dass es den guten automatischen Import gemacht hat: 'javax.swing.filechooser.FileFilter' und nicht' java.io.FileFilter'? – talnicolas

+0

Yup, es hat diesen Import gemacht! – mino

Antwort

8

Es ist nicht JFileFilter, es ist nur Filefilter

Das Problem ist, dass es zwei Filefilter Klassen/Schnittstellen in J2SE. Einer wird in java.io verwendet ... Ich bin mir ziemlich sicher, dass es in File ist. Der andere ist für den JFileChooser. Sie haben wahrscheinlich das falsche importiert.

BTW, es gibt eine Erweiterung filenameFilter oder etwas ähnliches, das wahrscheinlich alles tut, was Sie wollen. Suchen Sie die richtige Klasse in den Dokumenten und suchen Sie nach ihren Unterklassen

+0

Gelöst mit Ihrem Rat. Verwendet: FileNameExtensionFilter. Vielen Dank! – mino