JFileChooser - 设置固定文件名

Posted

技术标签:

【中文标题】JFileChooser - 设置固定文件名【英文标题】:JFileChooser - setting a fixed file name 【发布时间】:2012-08-30 13:27:44 【问题描述】:

我正在制作一个类似于带有代码突出显示的文本编辑器的应用程序。

当我尝试保存一些文本时,我希望在 JFileChooser 上显示一个固定的文件名,该文件名在浏览目录时不会更改。

我这样做的原因是因为用户要保存 .java 文件。该文件应该具有给定类的名称。让用户输入名称只会导致错误,这会减慢编译速度并且没有意义。

这是我的自动取款机:

final JFileChooser fc = new JFileChooser();
    fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    int userSelection = fc.showSaveDialog(null);
    if (userSelection == JFileChooser.APPROVE_OPTION) 
        File f = fc.getSelectedFile();
        String name = f.getAbsolutePath();
        File newFile = new File(name);//the text is written on this file.
    

【问题讨论】:

我不太确定,因为我使用 Swing 已经有一段时间了,但是由于选项“DIRECTORIES_ONLY”,您将只能获得 DirectoryPaths,因此您可以以编程方式自动附加文件名,然后您'重做。或者您是否希望用户明确地看到它将是什么但不能改变它? 那么你不能让用户选择一个目录(你似乎已经这样做了),然后用你喜欢的名称将文件存储在那个目录中吗? 顺便说一句,如果你保存的是java文件,你可能还需要考虑到包。 好点,@Gauillaume,我赞同! 可以,但这并不妨碍用户修改文件名。就个人而言,我会简单地要求用户使用 DIRECTORY_ONLY 文件选择器为 java 文件选择一个 src 目录,然后我会自动创建适当的包结构并使用适当的文件名保存。这将防止任何未来的问题。如果您希望显示 java 文件的名称,可以使用 FileChoose 标题或使用“附件”JLabel 组件 【参考方案1】:

我不知道,如果这对你有帮助。但是我遇到了类似的问题,并这样解决了:

final JFileChooser fc = new JFileChooser();
    fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    int userSelection = fc.showSaveDialog(null);
    if (userSelection == JFileChooser.APPROVE_OPTION) 
        File f = fc.getSelectedFile();
        String name = f.getAbsolutePath();
        File newFile = new File(name + "\\" + yourfilenamehere);//the text is written on this file.
    

我担心,这听起来太简单了...只需将“yourfilenamehere”替换为所需的(固定)文件名即可。

【讨论】:

我认为我需要的解决方案是只使用目录。感谢您的回答。 这个解决方案的“问题”是用户看不到文件名。就我而言,最好显示名称,尽管它应该是只读的。

以上是关于JFileChooser - 设置固定文件名的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式为 JFileChooser 设置文件过滤器

Swing-JFileChooser的使用

使用 JFileChooser 保存

JFileChooser 设置目录

JFileChooser - 自定义文件名(创建新文件)

JFileChooser保存对话框建议文件名[重复]