当前位置: 首页 > 面试题库 >

我需要在JFileChooser(打开模式)中显示不带扩展名的文件名。怎么样?

东方俊力
2023-03-14
问题内容

我在开放模式下使用“
JFileChooser”。我需要显示不带扩展名的“文件名”字段。怎么样??我知道FileView。它将删除文件系统文件中的扩展名,但会将扩展名留在“文件名”
说明中的所选文件中


这是我的FileView代码:

public class JQSFileView extends FileView{
@Override
    public String getName(File file){
        return FilenameUtils.removeExtension(file.getName());
    }
}

我用这个:

        fc.addPropertyChangeListener(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY, new PropertyChangeListener()
    {
        public void propertyChange(PropertyChangeEvent evt)
        {

            File selectedFile = fc.getSelectedFile();
            String path = selectedFile.getPath();
            path=FilenameUtils.removeExtension(path);
            fc.setSelectedFile(new File(path));

        }
    });

但是JFileChooser返回的文件名不正确,当我选择某些文件时,光标总是跳到上


问题答案:

根本原因是ui不在name字段中使用视图的名称作为文本。不知道这可能是一个好主意。如果确实需要,可以在JFileChooser的子类或PropertyChangeListener中手动进行操作,这里有一个替代:

    fc = new JFileChooser() {

        @Override
        public void setSelectedFile(File file) {
            super.setSelectedFile(file);
            ((BasicFileChooserUI) getUI()).setFileName(getName(file));
        }

    };
    fc.setFileView(new MyView());

编辑

outch
…没想到ui会有如此多的错误行为:-(问题是,所有操作都基于textField的内容重新创建了一个文件对象(而不是使用选择器的selectedFile属性)如果该字符串的扩展名被修剪,则找不到该文件,唯一的解决方法是替换操作…这可能不起作用。

总之,这个答案是没有用的,对不起。



 类似资料:
  • 问题内容: 我使用 browserify 和 watchify ,并希望不是默认的扩展名的其他文件,并没有指定扩展名,比如: 我已经尝试按照 browserify 文档中的指定进行操作: 但是我看不到任何变化。这可能吗?正确的方法是什么? 问题答案: 编辑 (2015年4月27日):我刚刚注意到在问题中,我有一个无效的参数,例如: 应该是(请注意中的(点)): 原始答案 : 添加的选项,这样做是为

  • 我使用的浏览器和Watchify,并希望文件以外的默认扩展名和没有指定的扩展名,例如: 我已经尝试了,如浏览器留档中指定的: 然而,我没有看到任何变化。这有可能吗?做这件事的正确方法是什么?

  • 问题内容: 我有这个PHP代码: 如果我有一个名为的文件,则此函数返回。 我想做相反的事情,我希望函数不带扩展名就返回。 该文件只是变量中的字符串。 问题答案: 不需要所有这些。签出pathinfo() ,它为您提供了路径的所有组件。 手册中的示例: 代码输出: 或者,您只能获得某些部分,例如:

  • 因此,我试图在NetBeans IDE中创建swing gui。我对java和GUI的构建是新手,所以这是一个学习曲线。 我创建了一个名为“open”的JMenuItem,并使用JFileChooser打开并显示一个文件。我限制自己使用的文件扩展名是“*.map”。 所以我让我的代码工作了,它在我的桌面上的一个新窗口中打开了选定的文件。但我想知道如何打开JFrame中的文件,而不是一个新窗口。它不

  • 问题内容: 如何从Python路径中获取不带扩展名的文件名? 问题答案: 获取不带扩展名的文件名: 输出: 重要说明:如果文件名具有多个点,则仅删除最后一个扩展名之后的扩展名。例如: 输出: 如果您需要处理这种情况,请参见下面的其他答案。

  • 问题内容: 与以“ Run”开头且文件扩展名为“ .py”的字符串(在本例中为文件名)匹配的正则表达式是什么? 正则表达式应匹配以下任何一个: 它不应该匹配: 我正在寻找的SQL等效项是。 问题答案: 对于正则表达式,可以使用: 快速说明: 。表示匹配任何字符。 表示匹配上一个字符的任何重复(因此。表示任何字符序列) \是逃避显式点的转义 $表示“字符串结尾”,因此我们不匹配“ Run_foo.p