ExampleFileFilterpublic class ExampleFileFilter extends FileFilter A convenience implementation of FileFilter that filters out
all files except for those type extensions that it knows about.
Extensions are of the type ".foo", which is typically found on
Windows and Unix boxes, but not on Macinthosh. Case is ignored.
Example - create a new filter that filerts out all files
but gif and jpg image files:
JFileChooser chooser = new JFileChooser();
ExampleFileFilter filter = new ExampleFileFilter(
new String{"gif", "jpg"}, "JPEG & GIF Images")
chooser.addChoosableFileFilter(filter);
chooser.showOpenDialog(this); |
Fields Summary |
---|
private static String | TYPE_UNKNOWN | private static String | HIDDEN_FILE | private Hashtable | filters | private String | description | private String | fullDescription | private boolean | useExtensionsInDescription |
Constructors Summary |
---|
public ExampleFileFilter()Creates a file filter. If no filters are added, then all
files are accepted.
this.filters = new Hashtable();
| public ExampleFileFilter(String extension)Creates a file filter that accepts files with the given extension.
Example: new ExampleFileFilter("jpg");
this(extension,null);
| public ExampleFileFilter(String extension, String description)Creates a file filter that accepts the given file type.
Example: new ExampleFileFilter("jpg", "JPEG Image Images");
Note that the "." before the extension is not needed. If
provided, it will be ignored.
this();
if(extension!=null) addExtension(extension);
if(description!=null) setDescription(description);
| public ExampleFileFilter(String[] filters)Creates a file filter from the given string array.
Example: new ExampleFileFilter(String {"gif", "jpg"});
Note that the "." before the extension is not needed adn
will be ignored.
this(filters, null);
| public ExampleFileFilter(String[] filters, String description)Creates a file filter from the given string array and description.
Example: new ExampleFileFilter(String {"gif", "jpg"}, "Gif and JPG Images");
Note that the "." before the extension is not needed and will be ignored.
this();
for (int i = 0; i < filters.length; i++) {
// add filters one by one
addExtension(filters[i]);
}
if(description!=null) setDescription(description);
|
Methods Summary |
---|
public boolean | accept(java.io.File f)Return true if this file should be shown in the directory pane,
false if it shouldn't.
Files that begin with "." are ignored.
if(f != null) {
if(f.isDirectory()) {
return true;
}
String extension = getExtension(f);
if(extension != null && filters.get(getExtension(f)) != null) {
return true;
};
}
return false;
| public void | addExtension(java.lang.String extension)Adds a filetype "dot" extension to filter against.
For example: the following code will create a filter that filters
out all files except those that end in ".jpg" and ".tif":
ExampleFileFilter filter = new ExampleFileFilter();
filter.addExtension("jpg");
filter.addExtension("tif");
Note that the "." before the extension is not needed and will be ignored.
if(filters == null) {
filters = new Hashtable(5);
}
filters.put(extension.toLowerCase(), this);
fullDescription = null;
| public java.lang.String | getDescription()Returns the human readable description of this filter. For
example: "JPEG and GIF Image Files (*.jpg, *.gif)"
if(fullDescription == null) {
if(description == null || isExtensionListInDescription()) {
fullDescription = description==null ? "(" : description + " (";
// build the description from the extension list
Enumeration extensions = filters.keys();
if(extensions != null) {
fullDescription += "." + (String) extensions.nextElement();
while (extensions.hasMoreElements()) {
fullDescription += ", " + (String) extensions.nextElement();
}
}
fullDescription += ")";
} else {
fullDescription = description;
}
}
return fullDescription;
| public java.lang.String | getExtension(java.io.File f)Return the extension portion of the file's name .
if(f != null) {
String filename = f.getName();
int i = filename.lastIndexOf('.");
if(i>0 && i<filename.length()-1) {
return filename.substring(i+1).toLowerCase();
};
}
return null;
| public boolean | isExtensionListInDescription()Returns whether the extension list (.jpg, .gif, etc) should
show up in the human readable description.
Only relevent if a description was provided in the constructor
or using setDescription();
return useExtensionsInDescription;
| public void | setDescription(java.lang.String description)Sets the human readable description of this filter. For
example: filter.setDescription("Gif and JPG Images");
this.description = description;
fullDescription = null;
| public void | setExtensionListInDescription(boolean b)Determines whether the extension list (.jpg, .gif, etc) should
show up in the human readable description.
Only relevent if a description was provided in the constructor
or using setDescription();
useExtensionsInDescription = b;
fullDescription = null;
|
|