2011-06-04 2 views
0

Можно создать дубликат: How do I restrict JFileChooser to a directory?Как сделать JFilechooser, чтобы позволить пользователю выбирать только одну папку?

JFileChooser FileC = new JFileChooser("C:\messy"); 
    int result = FileC.showOpenDialog(this); 
    if(result == JFileChooser.CANCEL_OPTION) 
    { 
     return; 
    } 

Я его запуска из папки C:\messy, но в данный момент пользователь может перейти на все каталоги из этого исходного положения.

+1

И перед тем кто-то еще голоса, чтобы закрыть это, я хотел бы отметить, что решение размещена здесь немного отличается от представленного другого решения, и плакат может (или не может) предпочесть предлагаемое решение. – camickr

+1

@camickr: Почему бы не скопировать свое решение [здесь] (http://stackoverflow.com/questions/32529/how-do-i-restrict-jfilechooser-to-a-directory) и проголосовать за удаление этого вопроса? – trashgod

+1

@trashgod, потому что другой вопрос - 3 года. Если кто-то выполняет поиск и находит вопрос, он увидит принятый ответ и ответ с 10 голосами. Скорее всего, они не заметят, что добавлен новый ответ (кто смотрит дату, когда ответ отправлен?) И поэтому игнорирует ответ, так как он не имеет приоритетов. Люди на этом форуме слишком быстры, чтобы закрывать публикации и не допускать новых решений и идей. – camickr

ответ

4

Single Root File Chooser ограничивает выбор одним каталогом и его дочерними элементами.

Если вы хотите, чтобы предотвратить выделение дочерних каталогов, то вы также должны добавить FileFilter:

chooser.removeChoosableFileFilter(chooser.getAcceptAllFileFilter()); 
chooser.addChoosableFileFilter(new FileFilter() 
{ 
    public boolean accept(File f) 
    { 
     return ! f.isDirectory(); 
    } 

    public String getDescription() 
    { 
     return "Files only"; 
    } 
}); 
Смежные вопросы