java中FileDiolog和FlieChooser的区别好像不是很大。

解决方案 »

  1.   

    1.FileDialog使用方法: FileDialog fd=new FileDialog(new Frame(),"测试",FileDialog.LOAD);
     FilenameFilter ff=new FilenameFilter(){
       public boolean accept(File dir, String name) {
        if (name.endsWith("jpg")){
         return true;
        }
        return false;
       }
      };
      fd.setFilenameFilter(ff);
     fd.setVisible(true);
     System.out.println(fd.getDirectory()+fd.getFile());但在Windows中FileDialog + FilenameFilter无法正常工作, jdoc的原注释为:Filename filters do not function in Sun's reference implementation for Microsoft Windows.2.FileDialog + FilenameFilter可以用JFileChooser + javax.swing.filechooser.FileFilter 来代替,jdoc中的例子如下:    JFileChooser chooser = new JFileChooser();
        // Note: source for ExampleFileFilter can be found in FileChooserDemo,
        // under the demo/jfc directory in the Java 2 SDK, Standard Edition.
        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());
        }转应用实例:
        JFileChooser filechooser = new JFileChooser();//创建文件选择器
        filechooser.setCurrentDirectory(new File("."));//设置当前目录
        filechooser.setAcceptAllFileFilterUsed(false);
        //显示所有文件
        filechooser.addChoosableFileFilter(new javax.swing.filechooser.FileFilter() {
          public boolean accept(File f) {
            return true;
          }
          public String getDescription() {
            return "所有文件(*.*)";
          }
        });
        //显示JAVA源文件
        filechooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
          public boolean accept(File f) { //设定可用的文件的后缀名
            if(f.getName().endsWith(".java")||f.isDirectory()){
              return true;
            }
            return false;
          }
          public String getDescription() {
            return "JAVA源程序(*.java)";
          }
        });
        //可以反复使用setFileFilter方法设置JFileChooser的选择类型