JFileChooser在过滤器中添加不同的文件类型

时间:2016-02-27 22:53:44

标签: java 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是要生成的,是否有任何指示我可以添加,以便文件选择器足够聪明,知道我想要哪一个?

1 个答案:

答案 0 :(得分:3)

正如@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"));