filedialog 怎样在文件类型框里加上*.xls,*.txt 这东西啊?

解决方案 »

  1.   

    package CadMis;
    import java.io.File;
    import java.util.Hashtable;
    import java.util.Enumeration;
    import javax.swing.*;
    import javax.swing.filechooser.*;public class CadFileFilter extends FileFilter {    private Hashtable filters = null;
        private String description = null; public CadFileFilter()
    {
    filters=new Hashtable();
    }

        public CadFileFilter(String extension, String description)
        {
    this();
    if(extension!=null) addExtension(extension);
      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);
        }
        public String getDescription()
        {
    return description;
        }    public void setDescription(String description)
        {
    this.description = description;
        }
    }
    ================================
    用这种方法调用下面的函数:
    outputFile=getFileFromFileDialog(new String[] {"Xls","Txt"},new String[] {"Excel 文件 (*.Xls)","文本文件"}); //显示打开文件对话框(选择文件)
    public java.io.File getFileFromFileDialog(String[] strFilter,String[]description)
    {
    CadFileFilter[] filter=new CadFileFilter[strFilter.length];
    for(int i=0;i<filter.length;i++)
    filter[i]=new CadFileFilter(strFilter[i],description[i]);

    javax.swing.JFileChooser fileDialog=new javax.swing.JFileChooser();

    for(int i=0;i<filter.length;i++)
    fileDialog.addChoosableFileFilter(filter[i]);

    fileDialog.showOpenDialog(this);

    java.io.File theFile = fileDialog.getSelectedFile();
    if (theFile != null)
    {
        if (!theFile.isDirectory())     
         return theFile;
    }

    return null;
    }