2016-02-27 4 views
0

У меня есть JFileChooser, и я хочу иметь различные варианты в типе, который изменит расширение. Параметры я хочу этоJFileChooser Добавить различные типы файлов в фильтр

  • .txt
  • .html
  • .xml

Прямо сейчас у меня есть:

JFileChooser chooser = new WritableFileChooser(Model.getSingleton().getOptionsParam().getUserDirectory()); 

    chooser.setFileFilter(new FileFilter() 
    { 

     @Override 
     public boolean accept(File file) 
     { 
      if (file.isDirectory()) 
      { 
       return true; 
      } 
      else if (file.isFile()) 
      { 
       String lcFileName = file.getName().toLowerCase(Locale.ROOT); 
       return (lcFileName.endsWith(TXT_FILE_EXTENSION) || lcFileName.endsWith(HTML_FILE_EXTENSION) || lcFileName.endsWith(XML_FILE_EXTENSION)           } 
      return false; 
     } 

     @Override 
     public String getDescription() 
     { 
      return Constant.messages.getString("file.format.html"); 
     } 

Но только все файлы и HTML доступны фильтр типа файла. В идеале я также хочу избавиться от опций «Все файлы».

Также у меня есть два разных формата .html, которые должны быть сгенерированы, есть ли какой-либо индикатор, который я могу добавить, чтобы выборщик файлов был достаточно умным, чтобы узнать, какой из них я хочу?

+0

Вы должны посмотреть на официальном руководстве Oracle, - [Использование файла Choosers - Фильтрация] (https://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html#filters). Он обеспечивает решение обеих ваших проблем. – AndrewMcCoist

+0

Это мне не помогло, оно фильтрует то, что видно. Не то, что можно выбрать из выпадающего списка. Мне нужно несколько фильтров, а не только один. Пример на их странице показывает, как группировать все изображения в один фильтр, который не то, что я хочу. Я хочу отдельные фильтры для каждого типа файла, а иногда и отдельные фильтры для одного и того же типа файла. – codeCompiler77

ответ

1

Как @AndrewMcCoist сказал, Oracle Tutorial on Filters несколько полезен, но я получил свой ответ и решение от этого example.

 chooser .addChoosableFileFilter(new FileNameExtensionFilter("PDF Documents", "pdf")); 
     chooser .addChoosableFileFilter(new FileNameExtensionFilter("MS Office Documents", "docx", "xlsx", "pptx")); 
     chooser .addChoosableFileFilter(new FileNameExtensionFilter("Images", "jpg", "png", "gif", "bmp"));