我是用FileDialog类写的,现在的问题是:不能选择保存文件的类型,好像这个功能实用
setFilenameFilter 方法实现,假如我要保存一个".jpg"类型的文件怎么写好呢
例如: 
  FileDialog  fd  =  new  FileDialog();  fd.setFilenameFilter(new Ff(".txt"));
    private class Ff implements FilenameFilter{
  
      Ff(String st){
           //此处如何写        
      } 
      public boolean accept(File dir, String file){
           return file.endsWith(extension);
      }  }

解决方案 »

  1.   

    刚好我这两天写了一个选择文件用的窗体
    不过用的是JFileChooser
    和FileFilter贴出来看你用不用得到
    import java.io.File;
    import javax.swing.JFileChooser;
    import javax.swing.filechooser.FileFilter;

    class MediaFileFilter extends FileFilter
        {
        
            static String names[] ={};           private String name;
            
            public boolean accept(File file)
            {
               int i=file.getName().toLowerCase().lastIndexOf(".");
               
               String s="";           if(i!=-1)
               {
                s=file.getName().toLowerCase().substring(i);
               }
               
              return file.isDirectory()||(name.indexOf(s)!=-1);
               
               
            }        public String getDescription()
            {
                return name;
            }        MediaFileFilter(String name)
            {
                this.name = ".*";
                this.name = name;
            }
        }


    public class FileChooser
    {

    String na[]={".jpg"};
     
            
    public static void main(String[] args)
     {
     
     
        JFileChooser jFileChooser1 = new javax.swing.JFileChooser();
        
        MediaFileFilter.names=new FileChooser().na;         jFileChooser1.removeChoosableFileFilter(jFileChooser1.getFileFilter());
            MediaFileFilter filter = null;
            for(int i = 0; i < MediaFileFilter.names.length; i++)
            {
                if(i == 0)
                {
                    filter = new MediaFileFilter(MediaFileFilter.names[i]);
                    jFileChooser1.addChoosableFileFilter(filter);
                } else
                {
                    jFileChooser1.addChoosableFileFilter(new MediaFileFilter(MediaFileFilter.names[i]));
                }
            }        jFileChooser1.setFileFilter(filter);
            
            int i1=jFileChooser1.showOpenDialog(null);
            if(i1==JFileChooser.APPROVE_OPTION )
            {
             System.out.println(jFileChooser1.getSelectedFile().toString());
            }
            if(i1==JFileChooser.CANCEL_OPTION)
            {
             System.out.println("没选择任何文件");
            }
            
            
     }
    }
      

  2.   

    找了半天,我在帮助文档里发现下面这个:setFilenameFilter
    public void setFilenameFilter(FilenameFilter filter)将此文件对话框窗口的文件名过滤器设置为指定的过滤器。Microsoft Windows 的文件名过滤器在 Sun 的参考实现中不起作用。