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的选择类型