Avatar billede nybegynder_java Nybegynder
22. maj 2008 - 12:13 Der er 3 kommentarer og
1 løsning

jfilechooser og filter

Jeg har brugt følgende filter: http://www.eksperten.dk/spm/780329

Men hvordan får jeg mapper med i den filtype som jeg gerne vil kunne se?

Min lister er:

          MyFilter filter = new MyFilter();
        filter.addExtension("pdf");
        filter.addExtension("esp");
        filter.addExtension("ai");
        filter.addExtension("cdr");
        filter.addExtension("cpt");
        filter.addExtension("jpg");
        filter.addExtension("tif");
        filter.addExtension("gif");
        fileChooser.setFileFilter(filter);
Avatar billede _carsten Nybegynder
22. maj 2008 - 14:10 #1
Du kan evt. ændre accept metoden i MyFilter

    public boolean accept(File f) {
        if(f.isDirectory())  // TILFØJ
            return true;

        for(int i = 0; i < extension.size(); i++){
            if( f.toString().endsWith( extension.get(i).toString() ) )
                return true;
        }
        return false;
    }





Eller bedre ændre  lidt mere i MyFilter

import java.io.File;
import java.util.Vector;
import javax.swing.filechooser.FileFilter;

public class MyFilter extends FileFilter{
    private boolean allowDirectories = false;
   
    public MyFilter() {
    }

    public boolean accept(File f) {
        if(allowDirectories)
            return true;
           
        for(int i = 0; i < extension.size(); i++){
            if( f.toString().endsWith( extension.get(i).toString() ) )
                return true;
        }
        return false;
    }

    public String getDescription() {
        return extension.toString();
    }
   
    public void addExtension(String ext){
        if(ext.equalsIgnoreCase("Directory"))
            allowDirectories = true;
        else
            extension.add(ext);
    }
   
    private Vector extension = new Vector();
}


Så du kan bruge denne
  filter.addExtension("directory");
Avatar billede nybegynder_java Nybegynder
26. maj 2008 - 15:44 #2
Hej carsten

Det andet eksempel virker ikke, så tog bare det første som virker fint.

Sender du et svar så får du point.
Avatar billede _carsten Nybegynder
26. maj 2008 - 20:03 #3
Nej - det kan jeg se, mig der er en tospande :)

Sådan:

    public boolean accept(File f) {
        if(f.isDirectory() && allowDirectories)
            return true;
Avatar billede _carsten Nybegynder
26. maj 2008 - 20:03 #4
Svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester