簡體   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