【问题标题】:JFileChooser HelpJFileChooser 帮助
【发布时间】:2011-03-11 23:08:05
【问题描述】:

我正在尝试制作一个程序,它涉及一个 JFileChooser。我正在努力使用户只能选择 .zip 文件。我的代码是

JFileChooser finder = new JFileChooser();
finder.setFileFilter(new FileNameExtensionFilter(null, ".zip"));

在我看来,它运行良好,但是当我转到带有 .zip 文件的文件夹时,.zip 文件是灰色的,我无法选择它们。我该如何解决?另外,作为一个附带问题,我如何摆脱 JFileChooser 窗口中的“所有文件”选项?

【问题讨论】:

    标签: java eclipse


    【解决方案1】:

    是的,只需将“.zip”替换为“zip”,您也可以删除“所有文件”选项并将其设为“Zip 文件”。使用以下代码...

    JFileChooser fileChooser = new JFileChooser();
    // select only zip files and add "Zip Files" option
    fileChooser.setFileFilter(new FileNameExtensionFilter("Zip Files", "zip"));
    // remove "All Files" option
    fileChooser.removeChoosableFileFilter(fileChooser.getAcceptAllFileFilter());
    

    【讨论】:

    • 我尝试使用此代码,它工作正常,但在“文件类型”字段中,我希望出现“*.txt”,但事实并非如此。如何向用户表明他们应该选择什么类型的文件?
    【解决方案2】:

    使用"zip" 作为扩展过滤器,而不是".zip"

    【讨论】:

    • 另外,如何获取不带 .zip 扩展名的文件名?
    • 谢谢,但该线程谈到了不适用于我的 Java/Eclipse 版本的 FilenameUtils。 Eclipse 只是用红色强调它并且没有可用的快速修复。我也尝试过根据线程导入它来自的包,但这没有帮助。有什么想法吗?
    • 那里的正则表达式答案怎么样?
    【解决方案3】:

    FileFilter 的扩展名不应包含点。点是名称和扩展部分之间的分隔符,而不是扩展的一部分。试试zip 而不是.zip。见javadoc for FileFilter for more.

    finder.setFileFilter(new FileNameExtensionFilter(null, "zip"));
    

    【讨论】:

      猜你喜欢
      • 2013-06-21
      • 2018-12-21
      • 2011-06-20
      • 2011-07-28
      • 2011-10-04
      • 2011-08-03
      • 2011-11-27
      • 1970-01-01
      相关资源
      最近更新 更多