首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要在JFileChooser(打开模式)中显示不带扩展名的文件名。多么?

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

Stack Overflow用户
提问于 2012-02-08 16:22:43
回答 1查看 1.6K关注 0票数 1

我在开放模式下使用'JFileChooser‘。我需要显示不带扩展名的'file name‘字段。怎么做?我知道FileView。它会删除文件系统文件中的扩展名,但会将选定文件中的扩展名保留在‘文件名’explanation字段中

这是我的FileView代码:

代码语言:javascript
复制
public class JQSFileView extends FileView{
@Override
    public String getName(File file){
        return FilenameUtils.removeExtension(file.getName());
    }
}

我使用的是:

代码语言:javascript
复制
        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返回的文件名不正确,当我选择某个文件时,光标总是跳到上方

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-08 19:05:19

潜在的原因是ui没有在name字段中使用视图的名称作为文本。这也许是个好主意,也可能是个好主意。如果你真的想这样做,你可以手动完成,或者在JFileChooser的子类中,或者在PropertyChangeListener中,下面是一个覆盖:

代码语言:javascript
复制
    fc = new JFileChooser() {

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

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

编辑

出局...没想到ui会有这么多的错误行为:-(问题是所有的动作都是基于textField的内容重新创建一个文件对象(而不是使用选择器的selectedFile属性)现在如果字符串的扩展名被修剪了,文件就找不到了。唯一的出路就是替换这些动作……这可能行不通。

总而言之,这个答案是无用的,对不起。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9189791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档