`

JFileChooser:ExampleFileFilter.java 类文件

    博客分类:
  • Java
 
阅读更多
http://whisperlin.blog.163.com/blog/static/605237102008310113243310/

今天在写打开文件对话框的代码时,想对文件类型进行限制,在JDK帮助文档中,提供了如下方法:

   
JFileChooser chooser = new JFileChooser();
// Note: source for ExampleFileFilter can be found in FileChooserDemo,
    // under the demo/jfc directory in the JDK.
    ExampleFileFilter filter = new ExampleFileFilter();
    filter.addExtension("jpg");
    filter.addExtension("gif");
    filter.setDescription("JPG & GIF Images");
    chooser.setFileFilter(filter);
    int returnVal = chooser.showOpenDialog(parent);
    if(returnVal == JFileChooser.APPROVE_OPTION) {
       System.out.println("You chose to open this file: " +
            chooser.getSelectedFile().getName());
    }


在其中用到ExampleFileFilter这个类,继承了FileFilter这个接口,它放在j2sdk1.4.2_16\demo\jfc\FileChooserDemo\src 中,我用的是jdk1.6版本,偏偏没有这个文件,郁闷了半天,无奈装了遍j1.4,现在问题解决了,将代码提取出来如下:

import java.io.File;
import java.util.Hashtable;
import java.util.Enumeration;
import javax.swing.*;
import javax.swing.filechooser.*;
public class ExampleFileFilter extends FileFilter {

    private static String TYPE_UNKNOWN = "Type Unknown";
    private static String HIDDEN_FILE = "Hidden File";

    private Hashtable filters = null;
    private String description = null;
    private String fullDescription = null;
    private boolean useExtensionsInDescription = true;
    public ExampleFileFilter() {
 this.filters = new Hashtable();
    }
    public ExampleFileFilter(String extension) {
 this(extension,null);
    }

    public ExampleFileFilter(String extension, String description) {
 this();
 if(extension!=null) addExtension(extension);
  if(description!=null) setDescription(description);
    }  
    public ExampleFileFilter(String[] filters) {
 this(filters, null);
    } 
    public ExampleFileFilter(String[] filters, String description) {
 this();
 for (int i = 0; i < filters.length; i++) {
     // add filters one by one
     addExtension(filters[i]);
 }
  if(description!=null) setDescription(description);
    }
    public boolean accept(File f) {
 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 String getExtension(File f) {
 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 void addExtension(String extension) {
 if(filters == null) {
     filters = new Hashtable(5);
 }
 filters.put(extension.toLowerCase(), this);
 fullDescription = null;
    }
    public String getDescription() {
 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 void setDescription(String description) {
 this.description = description;
 fullDescription = null;
    }
    public void setExtensionListInDescription(boolean b) {
 useExtensionsInDescription = b;
 fullDescription = null;
    }
    public boolean isExtensionListInDescription() {
 return useExtensionsInDescription;
    }
}
分享到:
评论

相关推荐

    Java中文件选择器JFileChooser.showSaveDialog实现默认文件名的解决方案

    "Java中文件选择器JFileChooser.showSaveDialog实现默认文件名的解决方案" 在 Java 中,文件选择器 JFileChooser 是一个常用的组件,用于选择打开文件或保存文件。然而,在使用 JFileChooser 的时候,我们经常会...

    4月Java语言程序设计(一)试题答案.pdf

    根据提供的文件内容,我们可以提炼出多个与Java语言程序设计相关的知识点。这些知识点包括Java基础语法、集合框架、Swing图形用户界面编程、文件操作、多线程编程、网络编程、数据库编程以及Java API使用等。下面将...

    JFileChooser使用详解.pdf

    JFileChooser是Java Swing组件库中的一个类,用于创建图形化的文件选择对话框。它提供了一个简单而强大的方式让用户选择文件或目录。本文将对JFileChooser的使用进行详解。 首先,创建一个JFileChooser对象是使用...

    Java的JFileChooser类的使用详解

    JFileChooser是一个Java类,提供了一个文件对话框,用于选择文件或文件夹。它可以通过API打开一个模态对话框,或直接实例化并加入到其他组件。 直接使用JFileChooser打开对话框 JFileChooser可以直接通过API打开一...

    java程序设计 TCP文件传输程序 JFileChooser实现文件选择 可以设置路径

    这个过程涉及到的Java类和接口包括`Socket`、`ServerSocket`、`InputStream`、`OutputStream`、`BufferedInputStream`、`BufferedOutputStream`以及`JFileChooser`。理解这些核心组件的工作原理和使用方法是Java网络...

    Java文件选择对话框JFileChooser使用详解

    此外,可以通过`setMultiSelectionEnabled(true)`来启用多文件选择,或者通过`setDialogType(JFileChooser.SAVE_DIALOG)`来指定对话框是打开文件还是保存文件。 总的来说,`JFileChooser`是Java GUI编程中处理文件...

    Java实验报告书样本5个实验 word格式 可以直接上交的

    2. 使用Java Swing库构建GUI,包括JFrame、JFileChooser、JMenuItem等组件。 3. 实现文件操作功能,如打开文件对话框,读取和写入文件内容。 4. 添加事件监听,如菜单项的ActionListener,实现文件操作的逻辑。 ...

    Java将图片组合成PDF文件的方法

    Java中的文件选择器可以使用JFileChooser类,该类提供了一个文件选择器,可以选择文件和文件夹。 4. 事件处理:事件处理是指Java程序中对用户操作的响应。Java中的事件处理可以使用ActionListener接口,该接口提供...

    基于 java swing 开发的资源管理器

    - 文件I/O操作:如使用java.io.File类进行文件和目录的创建、删除、重命名等操作。 - 多线程:为了确保界面的响应性,可能需要在后台线程(比如SwingWorker)中执行耗时的操作,如加载大文件或遍历目录。 - 事件...

    java 保存文件

    jFileChooser.setDialogTitle("保存文件"); jFileChooser.setSelectedFile(new File("abc"));//默认文件名 int result = jFileChooser.showSaveDialog(jFileChooser); if (result == JFileChooser.APPROVE_OPTION) {...

    java实现文件选择

    if (result == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); // 处理选中的文件 } ``` 2. **文件操作模式**: `JFileChooser`提供了多种模式,如`OPEN_DIALOG`(打开...

    java_IO记事本

    2. **获取文件路径**:通过`JFileChooser`的`getSelectedFile()`方法获得用户选择的文件,并调用`getAbsolutePath()`获取文件的完整路径。 ```java String filename = jfc1.getSelectedFile().getAbsolutePath(); ...

    Java Swing组件文件选择器JFileChooser简单用法示例

    Java Swing组件文件选择器JFileChooser简单用法示例 Java Swing组件文件选择器JFileChooser是Java Swing中一个功能强大且灵活的文件选择器组件,可以用来选择文件或文件夹。下面我们将通过一个简单的示例来介绍...

    Java设置打开或保存文件的对话框的文件类型选择

    "Java设置打开或保存文件的对话框的文件类型选择" Java中,设置打开或保存文件对话框的文件类型选择是非常重要的。通过使用FileNameExtensionFilter类,可以设置对话框中显示的文件类型。下面将详细介绍如何使用...

    Java Swing 文件选择器

    在Java Swing中,`JFileChooser`是用于实现文件选择对话框的关键类,它允许用户从本地文件系统中打开或保存文件。这个小例子是关于如何使用`JFileChooser`创建一个简单的文件选择功能。 在Java Swing应用中,`...

    2021-2022计算机二级等级考试试题及答案No.17254.docx

    - Java 中的 `Random` 类位于 `java.util` 包中,用于生成随机数。 - **正确答案**:(Random、java.util)。 #### 8. 数据结构与算法 - **选项解析**:本题考查链表的存储结构。 - A. 必须是连续的:链表不一定...

    使用JFileChooser控件下载文件

    JFileChooser下载文件到本地,可选择文件保存路径,可以上传文件,保存文件chooser.showSaveDialog()函数,打开文件chooser.showOpenDialog()函数

    文件保存、打开java片段

    以下是关于Java文件操作的一些关键知识点: 1. **File类**:`File`类是文件和目录路径名的抽象表示形式。你可以创建`File`对象来表示一个存在的文件或目录,或者用来创建新文件或目录。例如: ```java File file ...

    有用的例子啊JAVA文件选择器

    这个“有用的例子啊JAVA文件选择器”提供的示例代码可以帮助我们更好地理解如何在Java应用程序中集成这样的功能。下面将详细探讨Java中的文件选择器及其相关知识点。 1. **JFileChooser类**: `JFileChooser` 是Java...

    java实现的本地文件管理器,java实现文件管理系统,Java源码.zip.zip

    例如,我们可以创建一个只显示.java文件的过滤器。 4. **多线程**:在大型文件系统中,可能需要同时处理多个文件操作。Java的多线程支持可以用来并发执行这些任务,提高性能。`Thread`类和`Runnable`接口是实现多...

Global site tag (gtag.js) - Google Analytics