Jfilechooser selects multiple files but not directories

How can I let the user select one or more files or just one directory?

In the settings below, you can also select several channels as well as files and directories at the same time, and I want to prevent this.

chooser.setMultiSelectionEnabled(true);
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
+4
source share
2 answers

you set the ProportyChangeListener, as in the example below:

        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()));
+1
source

How can I let the user select one or more files or just one directory?

To enable one or more options, use chooser.setMultiSelectionEnabled(true);

To enable file or directory selection, use chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

To include only the file, use chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

To include only the directory, use chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

: :

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

: :

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

Source: https://habr.com/ru/post/1614601/


All Articles