当前位置:  开发笔记 > 编程语言 > 正文

在JFileChooser中将选定的文件调整为FileFilter

如何解决《在JFileChooser中将选定的文件调整为FileFilter》经验,为你挑选了1个好方法。



1> Amanda S..:

看起来您可以监听属性JFileChooser的更改FILE_FILTER_CHANGED_PROPERTY,然后使用适当更改所选文件的扩展名setSelectedFile().


编辑:你是对的,这个解决方案不起作用.事实证明,当文件过滤器更改时,如果所选文件的文件类型与新过滤器不匹配,则会删除该文件.这就是为什么你在null尝试时得到的原因getSelectedFile().

你考虑过稍后添加扩展吗?当我写一篇文章时JFileChooser,我通常会在用户选择要使用的文件后添加扩展名,然后点击"保存":

if (result == JFileChooser.APPROVE_OPTION)
{
  File file = fileChooser.getSelectedFile();
  String path = file.getAbsolutePath();

  String extension = getExtensionForFilter(fileChooser.getFileFilter());

  if(!path.endsWith(extension))
  {
    file = new File(path + extension);
  }
}

fileChooser.addPropertyChangeListener(JFileChooser.FILE_FILTER_CHANGED_PROPERTY, new PropertyChangeListener()
{
  public void propertyChange(PropertyChangeEvent evt)
  {
    FileFilter filter = (FileFilter)evt.getNewValue();

    String extension = getExtensionForFilter(filter); //write this method or some equivalent

    File selectedFile = fileChooser.getSelectedFile();
    String path = selectedFile.getAbsolutePath();
    path.substring(0, path.lastIndexOf("."));

    fileChooser.setSelectedFile(new File(path + extension));
  }
});

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有