为了账号安全,请及时绑定邮箱和手机立即绑定

在不使用.setFileSelectionMode的情况下限制JFileChooser的允许选择

在不使用.setFileSelectionMode的情况下限制JFileChooser的允许选择

狐的传说 2021-04-06 13:09:24
目前,我正在尝试复制NetBeans的“打开项目”文件选择对话框,因为我希望使用类似的系统来选择满足某些条件的文件夹。但是,我无法强制对话框选择满足我的条件的对话框,而不选择任何文件夹。我该怎么做呢?编辑:将文件夹视为NetBeans项目所需满足的条件是它需要包含一个nbproject文件夹。到目前为止,我已经尝试使用.setFileSelectionMode,但是对于我的目的而言,这还不够严格。我的代码(在main方法中):JFileChooser chooser = new JFileChooser();FileFilter filter = new FileFilter() {    @Override    public boolean accept(File f) {        if (f.isDirectory()) {            // check if this folder is a NetBeans Project            File[] list = f.listFiles();            for (File sub : list) {                if (sub.isDirectory()) {                    if (sub.getName().equals("nbproject")) {                        return true;                    }                }            }                return false;        } else {            return false;        }    }    @Override    public String getDescription() {        return "NetBeans Projects";    }};// so I can select the folder...// ...but I only want the user to be able to select stuff my filter acceptschooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);chooser.addChoosableFileFilter(filter);chooser.setFileFilter(new FileFilter() {    @Override    public boolean accept(File f) {        return f.isDirectory();    }    @Override    public String getDescription() {        return "Folders";    }});chooser.setAcceptAllFileFilterUsed(false);chooser.showOpenDialog(null);附录:这是我必须浏览的示例文件结构:C:\USER\Documents\NetBeansProjects|- Project   |- nbproject|- New Folder (empty)我只想选择Project文件夹而不能New Folder。两者仍然需要可见。但是,当我选择时New Folder,程序将批准并关闭窗口。这不是我想要的行为。相反,我希望窗口仅打开文件夹。(旁注:我并不是真的想为此目的重写整个类。但是,如果确实要重写这个类,我可以使用一种解决方法,这种情况不需要发生。)
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

似乎没有直接的方法或方法来解决此问题。然后,我将使用解决方法。

选择文件夹的目的是简化序列化操作(每个文件一个对象),但是我将所有内容都填充到一个文件中。


查看完整回答
反对 回复 2021-04-14
  • 1 回答
  • 0 关注
  • 233 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信