首页 > 学院 > 开发设计 > 正文

Swing中JFileChooser的用法

2019-11-08 01:21:01
字体:
来源:转载
供稿:网友

Swing中JFileChooser的用法 1、基本用法 复制代码 JFileChooser dlg = new JFileChooser(); dlg.setDialogTitle(“Open JPEG file”); int result = dlg.showOpenDialog(this); // 打开”打开文件”对话框 // int result = dlg.showSaveDialog(this); // 打”开保存文件”对话框 if (result == JFileChooser.APPROVE_OPTION) { File file = dlg.getSelectedFile(); … } 复制代码 2、自定义FileFilter

JDK没有提供默认的文件过滤器,但提供了过滤器的抽象超类,我们可以继承它。

i

复制代码 mport 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; }

} 复制代码 其实主要就是accept(File f)函数。上例中只有一个过滤器,多个过滤器可参考JDK目录中“demo/jfc/FileChooserDemo/src”中的“ExampleFileFilter.java”

3、多选

在基本用法中,设置

c.setMultiSelectionEnabled(true);

即可实现文件的多选。

读取选择的文件时需使用

File[] files = c.getSelectedFiles();

4、选择目录

利用这个打开对话框,不仅可以选择文件,还可以选择目录。

其实,对话框有一个FileSelectionMode属性,其默认值为“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()); … } 复制代码


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表