[英]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.