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

Java Jfilechooser选择多个文件,但不选择目录,java,jfilechooser,Java,Jfilechooser,如何让用户选择一个或多个文件或 只有一个目录 以下设置还允许选择多个目录 同时还有文件和目录,我想防止这种情况发生 chooser.setMultiSelectionEnabled(true); chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); 如何让用户选择一个或多个文件或仅选择一个目录 要启用一个或多个选项,请使用chooser.setMultiSelectionEnabled(true) 要启用文件或目录选

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

以下设置还允许选择多个目录 同时还有文件和目录,我想防止这种情况发生

chooser.setMultiSelectionEnabled(true);
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
如何让用户选择一个或多个文件或仅选择一个目录

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

要启用文件或目录选择,请使用
chooser.setFileSelectionMode(JFileChooser.FILES\u和\u目录)

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

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

例如:仅多个文件:

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()));

谢谢,但不是我想要的。我想知道是否可能只允许多个文件(或仅允许一个文件),但不允许多个目录…再次让我更清楚。文件选择器打开..然后我希望能够按住ctrl键并单击多个文件,但不能单击多个目录..有一个方法称为chooser.setMultiSelectionForDirectoriesEnabled(false);和选择器。setMultiSelectionForFilesEnabled(true);:)