2015-09-11 2 views
2

Используя JFileChooser, я включил режим множественного выбора на setMultiSelectionEnabled(true), но как установить лимит, чтобы пользователь мог выбрать только определенное количество текстовых (или других) файлов?Как ограничить JFileChooser для выбора файлов с определенными номерами?

public File[] fileSelect() { 
    fileChooser = new JFileChooser(); 
    fileNameExtFilter = new FileNameExtensionFilter("Text File","txt"); 
    fileChooser.setCurrentDirectory(new java.io.File(".")); 
    fileChooser.setDialogTitle("Open Question Set"); 
    fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); 
    fileChooser.setAcceptAllFileFilterUsed(false); 
    fileChooser.setFileFilter(fileNameExtFilter); 
    fileChooser.setMultiSelectionEnabled(true); 

    if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) 
     return fileChooser.getSelectedFiles(); 
    else 
     return null; 
} 
+1

* «.. но как установить ограничение на это, чтобы пользователь мог выбрать только три файла». * Почему только 3? Если бы это было так, я бы предложил пользователю один файл выбора выбора, 3 раза. –

+0

Мне нужно отправить путь к этим файлам в конструктор другого класса, поэтому я не могу сделать петлю, я думаю. И «только 3» в моем случае. Я согласен с вами, я должен спросить в целом. –

ответ

3

несколько подходов возможны:

  • Создание пользовательских FileChooserUI на подклассы BasicFileChooserUI и ограничить выбор в своей реализации вложенного класса SelectionListener.

  • Создайте пользовательский файловый браузер, как показано на рисунке here, и ограничьте выбор в соответствующем прослушивателе.

  • Использовать существующие FileChooser и представить диалог, когда выбор превышает три; рассмотрите возможность использования JTable, содержащих флажки, как показано на рисунке here.

  • Используйте отдельные панели выбора, как показано на рисунке here для двух файлов через createPathPanel().

image

Лучший выбор и точные детали будут зависеть от случая использования.

+2

Большое спасибо. Я нашел 1,3 и 4 подходящих для моей ситуации. –

Смежные вопросы