🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #17557

Re: FilenameFilter

#17557
From: al
Date: Tue, 07 Nov 2000 00:00
97 lines
3230 bytes
    Hallo!!

    Bueno, lo que yo te digo vale para Swing, pero aunque tu no lo utilices
supongo que no tendras que cambiar demasiado.

    Lo que tienes que hacer es crear una clase que extienda a "FileFilter" y
en ella implementar el metodo "accept (File f)", que es el que se encarga.
(tambien tienes que implmentar "getDescription). Y despues, asignar este
filtro al "FileChooser" con "setFiFilter" o "addChoosableFileFilter".

    Por si te intersa aqui mando la clase que hice yo en su dia, pero me
temo que nunca llegue a probarla bajo "linux", asi que espero que me digas
si funciona o no, ok??.

    Su uso seria algo asi como

Filtro filtro=new Filtro();
/* extensiones que quieres anyadir*/
filtro.addExtension("gif");
filtro.addExtension("TXT");
/* descripcion del filtro*/
filtro.setDescription("mis extensiones");
JFileChooser fileChooser = new JFileChooser(".");
fileChooser.setFileFilter(filtro);

    Eso es todo, espero que te sea de ayuda, bye,

                        al.


**********************************************

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

public class Filtro extends FileFilter{

  private Hashtable validas=new Hashtable();
  private String desc=new String ("Al 99");

  public Filtro() {
    super();
  }

  public boolean accept (File f){
    if (f.isDirectory()){
        return (true);
    }
    String extension=getExtension(f);
    return (validas.containsKey(extension));
  }

  private String getExtension (File f){
    String nombre=f.getName();
    int pos=nombre.lastIndexOf('.');
    if (pos>0){
      return (nombre.substring(pos+1).toLowerCase());
    }
    else{
      return ("sin extension");
    }
  }

  public void addExtension (String ext){
    validas.put(ext.toLowerCase(),"");
  }

  public void setDescription (String d){
    desc=d;
  }

  public String getDescription (){
    return (desc);
  }
}

********************************************************



Pablo Rey Mayo <prey@cesga.es> schrieb in im Newsbeitrag:
3A07E686.54576423@cesga.es...
Hola a todos,

�Como puedo cambiar en un FileDialog el filtro de los ficheros?. Usando
algo como 'openFileDialog1.setFile("*.dat");' en Windows solo aparecen
los ficheros *.dat como quiero, pero sin embargo en UNIX aparecen todos
los ficheros. Intente usar la propiedad FilenameFilter (o algo asi),
pero en la ayuda no encontre como hacerlo. Alguien me puede ayudar con
esto.

Un saludo.

--
Pablo Rey Mayo
email: prey@cesga.es ; http://www.cesga.es/
Technical Details
Message-ID: <3a08044a$0$29231$73bec562@personalnews.de.uu.net>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <3A07E686.54576423@cesga.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: 1116f3,17ffc286f8dab8e8
X-Google-Attributes: gid1116f3,public
From: "al" <alkitte@hotmail.com>
Subject: Re: FilenameFilter
Date: 2000/11/07
Message-ID: <3a08044a$0$29231$73bec562@personalnews.de.uu.net>
X-Deja-AN: 690781053
References: <3A07E686.54576423@cesga.es>
X-Priority: 3
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
X-Complaints-To: abuse@de.uu.net
X-Trace: 973603915 personalnews.de.uu.net 29231 149.225.58.60
Organization: Customer of UUNET Deutschland GmbH
X-MSMail-Priority: Normal
Newsgroups: es.comp.lenguajes.java