繁体   English   中英

Jfilechooser选择多个文件但不选择目录

[英]Jfilechooser select multiple files but not directories

如何让用户选择一个或多个文件或只选择一个目录?

以下设置还允许同时选择多个目录以及文件和目录,我想阻止它。

chooser.setMultiSelectionEnabled(true);
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

如何让用户选择一个或多个文件或只选择一个目录?

要启用一个或多个选项,请使用chooser.setMultiSelectionEnabled(true);

要启用文件或目录选择,请使用chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

要仅启用文件,请使用chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

要仅启用目录,请使用chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

例如:只有多个文件:

chooser.setMultiSelectionEnabled(true);
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

例如:只有一个文件:

chooser.setMultiSelectionEnabled(false);
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

您可以设置ProportyChangeListener,如下例所示:

        final JFileChooser c = new JFileChooser();
        c.setMultiSelectionEnabled(true);
        c.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
        c.addPropertyChangeListener(new PropertyChangeListener() {
            public void propertyChange(PropertyChangeEvent evt) {
                if (JFileChooser.SELECTED_FILES_CHANGED_PROPERTY.equals(evt.getPropertyName())) {
                    File[] selectedFiles = c.getSelectedFiles();
                    if (selectedFiles.length > 1) {
                        File f=c.getSelectedFile();
                        if (f.isDirectory())
                            c.setSelectedFiles(new File[] {f});
                    }
                }
            }
        });
        c.showDialog(null,"Apply");
        System.out.println(Arrays.asList(c.getSelectedFiles()));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM