首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JFileChooser帮助

JFileChooser帮助
EN

Stack Overflow用户
提问于 2011-02-03 08:11:15
回答 2查看 2.5K关注 0票数 0

我正在尝试为我的JFileChooser设置文件过滤器。这是我的代码:

代码语言:javascript
复制
JFileChooser picker= new JFileChooser();
picker.setFileFilter(new FileNameExtensionFilter("txt"));
int pickerResult = picker.showOpenDialog(getParent());
if (pickerResult == JFileChooser.APPROVE_OPTION){
System.out.println("This works!");
}
if (pickerResult == JFileChooser.CANCEL_OPTION){
System.exit(1);
}

当我运行我的程序时,文件选择器出现了,但它不让我选择任何.txt文件。相反,它在控制台中这样说:

代码语言:javascript
复制
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Extensions must be non-null and not empty

我该如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-03 08:18:03

您需要添加至少一个扩展名作为第二个参数。在API中:

代码语言:javascript
复制
FileNameExtensionFilter(String description, String... extensions) 

Parameters:
description - textual description for the filter, may be null
extensions - the accepted file name extensions
票数 1
EN

Stack Overflow用户

发布于 2015-10-29 23:58:35

此外,如果你想要一个特定的文件扩展名并浏览文件夹,你可以尝试这样做:

代码语言:javascript
复制
JFileChooser fc = new JFileChooser(path);
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
fc.addChoosableFileFilter(new FileFilter () {

    @Override
    public String getDescription() {
        return "DAT Files";
    }

    @Override
    public boolean accept(File f) {
        if (f.isDirectory())
            return true;
        return f.getName().endsWith(".dat");
    }

});
fc.setAcceptAllFileFilterUsed(false);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4881442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档