Java JFileChooser在过滤器更改时附加扩展名

时间:2016-02-28 07:26:39

标签: java swing jfilechooser

我有过滤器

  • 所有
  • HTML
  • TXT

根据选择的过滤器,将扩展名附加到JFileChooser或禁止用户输入扩展名。

在他们按下保存按钮但窗口打开时没有。

我正在查看addPropertyChangeListener,但我找不到文件更改属性之外的任何内容。

编辑:我到目前为止,我可以添加过滤器,但我仍然不知道如何获取相关的过滤器。

            fc.addPropertyChangeListener(JFileChooser.FILE_FILTER_CHANGED_PROPERTY, new PropertyChangeListener()
            {
                @Override
                public void propertyChange(PropertyChangeEvent evt)
                {
                    **MyFileFilter** filter = (**MyFileFilter**) evt.getNewValue();
                    String extension = filter.getExtensionByDescription(filter.getDescription());
                    //String extension = "ext"; // somehow here
                    fc.setSelectedFile(new File("." + extension));
                }
            });

创建一个扩展FilerFilter

的自定义类
    public String getExtensionByDescription(String description)
    {
        for (int i = 0 ; i < fileList.size(); i++)          
        {
            if (description.contains(fileList.get(i).getDescription()))
            {
                return "." + fileList.get(i).getExtension();
            }
        }
//      for (FileType obj : fileList)
//      {
//          if (description.contains(obj.getDescription()))
//              return "." +  obj.getExtension();
//      }
        return "";
    }

在一个附带问题上,有没有人知道为什么注释掉的for循环不起作用?它返回错误的扩展,但它在逻辑上与上面的循环相同:S

0 个答案:

没有答案