1、基本用法
JFileChooser dlg = new JFileChooser();
dlg.setDialogTitle("Open JPEG file");
int result = dlg.showOpenDialog(this); // 打開"打開文件"對(duì)話框
// int result = dlg.showSaveDialog(this); // 打"開保存文件"對(duì)話框
if (result == JFileChooser.APPROVE_OPTION) {
File file = dlg.getSelectedFile();
...
}
2、自定義FileFilter
JDK沒有提供默認(rèn)的文件過濾器,但提供了過濾器的抽象超類,我們可以繼承它。
import javax.swing.filechooser.FileFilter;
public final class PictureFileFilter extends FileFilter {
private String extension;
private String description;
public PictureFileFilter(String extension, String description) {
super();
this.extension = extension;
this.description = description;
}
public boolean accept(File f) {
if (f != null) {
if (f.isDirectory()) {
return true;
}
String extension = getExtension(f);
if (extension != null && extension.equalsIgnoreCase(this.extension)) {
return true;
}
}
return false;
}
public String getDescription() {
return description;
}
private 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;
}
}
其實(shí)主要就是accept(File f)函數(shù)。上例中只有一個(gè)過濾器,多個(gè)過濾器可參考JDK目錄中“demo\jfc\FileChooserDemo\src”中的“ExampleFileFilter.java”
3、多選
在基本用法中,設(shè)置
c.setMultiSelectionEnabled(true);
即可實(shí)現(xiàn)文件的多選。
讀取選擇的文件時(shí)需使用
File[] files = c.getSelectedFiles();
4、選擇目錄
利用這個(gè)打開對(duì)話框,不僅可以選擇文件,還可以選擇目錄。
其實(shí),對(duì)話框有一個(gè)FileSelectionMode屬性,其默認(rèn)值為“JFileChooser.FILES_ONLY”,只需要將其修改為“JFileChooser.DIRECTORIES_ONLY”即可。
JFileChooser c = new JFileChooser();
c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
c.setDialogTitle("Select path to save");
int result = c.showOpenDialog(PrintDatetime.this);
if (result == JFileChooser.APPROVE_OPTION) {
String path = c.getSelectedFile().getAbsolutePath());
...
}
posted on 2008-08-08 01:38
幽幽 閱讀(10112)
評(píng)論(1) 編輯 收藏 引用 所屬分類:
Java