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的選擇類型