A simple FileFilter class that works by filename extension : File Chooser « Swing JFC « Java






A simple FileFilter class that works by filename extension

     
/*
 * Copyright (c) Ian F. Darwin, http://www.darwinsys.com/, 1996-2002.
 * All rights reserved. Software written by Ian F. Darwin and others.
 * $Id: LICENSE,v 1.8 2004/02/09 03:33:38 ian Exp $
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS''
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 * 
 * Java, the Duke mascot, and all variants of Sun's Java "steaming coffee
 * cup" logo are trademarks of Sun Microsystems. Sun's, and James Gosling's,
 * pioneering role in inventing and promulgating (and standardizing) the Java 
 * language and environment is gratefully acknowledged.
 * 
 * The pioneering role of Dennis Ritchie and Bjarne Stroustrup, of AT&T, for
 * inventing predecessor languages C and C++ is also gratefully acknowledged.
 */

import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;

/**
 * A simple FileFilter class that works by filename extension, like the one in
 * the JDK demo called ExampleFileFilter, which has been announced to be
 * supported in a future Swing release.
 */
public class JFileFilter extends javax.swing.filechooser.FileFilter {
  protected String description;

  protected ArrayList exts = new ArrayList();

  public void addType(String s) {
    exts.add(s);
  }

  /** Return true if the given file is accepted by this filter. */
  public boolean accept(File f) {
    // Little trick: if you don't do this, only directory names
    // ending in one of the extentions appear in the window.
    if (f.isDirectory()) {
      return true;

    } else if (f.isFile()) {
      Iterator it = exts.iterator();
      while (it.hasNext()) {
        if (f.getName().endsWith((String) it.next()))
          return true;
      }
    }

    // A file that didn't match, or a weirdo (e.g. UNIX device file?).
    return false;
  }

  /** Set the printable description of this filter. */
  public void setDescription(String s) {
    description = s;
  }

  /** Return the printable description of this filter. */
  public String getDescription() {
    return description;
  }
}



           
         
    
    
    
    
  








Related examples in the same category

1.JFileChooser is a standard dialog for selecting a file from the file system.
2.A demo which makes extensive use of the file chooserA demo which makes extensive use of the file chooser
3.Demonstration of File dialog boxesDemonstration of File dialog boxes
4.JFileChooser class in action with an accessoryJFileChooser class in action with an accessory
5.A simple file chooser to see what it takes to make one of these workA simple file chooser to see what it takes to make one of these work
6.see what it takes to make one of these filters worksee what it takes to make one of these filters work
7.show thumbnails of graphic filesshow thumbnails of graphic files
8.FileChooser file filter customized filechooserFileChooser file filter customized filechooser
9.Choose a FileChoose a File
10.Customizing a JFileChooserCustomizing a JFileChooser
11.Swing File Chooser DemoSwing File Chooser Demo
12.FileChooser DemoFileChooser Demo
13.File Chooser Demo 2File Chooser Demo 2
14.File Chooser Demo 4File Chooser Demo 4
15.Getting the File-Type Icon of a File
16.Getting the Large File-Type Icon of a File
17.Listening for Approve and Cancel Events in a JFileChooser Dialog
18.String javax.swing.JFileChooser.APPROVE_SELECTION
19.void javax.swing.JFileChooser.addActionListener(ActionListener l)
20.JDialog javax.swing.JFileChooser.createDialog(Component parent)
21.void javax.swing.JFileChooser.setDialogType(int dialogType)
22.Changing the Text of the Approve Button in a JFileChooser Dialog
23.Determining If a File Is Hidden
24.Showing Hidden Files in a JFileChooser Dialog
25.Enabling Multiple Selections in a JFileChooser Dialog
26.Listening for Changes to the Selected File in a JFileChooser Dialog
27.Getting the File-Type Name of a File
28.Getting and Setting the Selected File of a JFileChooser Dialog
29.Getting and Setting the Current Directory of a JFileChooser Dialog
30.Determining If the Approve or Cancel Button Was Clicked in a JFileChooser Dialog
31.Adding a Filter to a File Chooser Dialog
32.Displaying Only Directories in a File Chooser Dialog
33.Creating a JFileChooser Dialog
34.Localize a JFileChooser
35.Select a directory with a JFileChooser
36.Disable the JFileChooser's "New folder" button
37.Validate a filename from a JFileChooser
38.extends FileView to create custom File chooser
39.Suffix FileFilter
40.Extension File Filter
41.Files filter that filters files by their suffix (or extension)
42.Generic File Filter
43.Get Directory Choice
44.Get File Choice
45.A file view that displays an icon for all files that match a file filterA file view that displays an icon for all files that match a file filter
46.Dir File Filter extends javax.swing.filechooser.FileFilter