java - 如何使用 JFileChooser.showSaveDialog 保存文件?

标签 java eclipse text text-editor notepad

我正在用 Java 制作一个文本编辑器,但我的保存功能无法按我想要的方式工作。这是我用来保存文件的代码:

public void actionPerformed(ActionEvent event) {
        String filename = JOptionPane.showInputDialog("Name this file");
        JFileChooser savefile = new JFileChooser();
        savefile.setSelectedFile(new File(filename));
        savefile.showSaveDialog(savefile);
        BufferedWriter writer;
        int sf = savefile.showSaveDialog(null);
        if(sf == JFileChooser.APPROVE_OPTION){
            try {
                writer = new BufferedWriter(new FileWriter(filename,
                        false));
                text.write(writer);
                writer.close();
                JOptionPane.showMessageDialog(null, "File has been saved","File Saved",JOptionPane.INFORMATION_MESSAGE);
                // true for rewrite, false for override

            } catch (IOException e) {
                e.printStackTrace();
            }
        }else if(sf == JFileChooser.CANCEL_OPTION){
            JOptionPane.showMessageDialog(null, "File save has been canceled");
        }
    }

当我单击“保存”按钮时,会弹出窗口,我选择要保存的位置。单击“保存”后,它会再次打开窗口并保存到我的 Eclipse Workspce。我用谷歌搜索了互联网,没有人遇到同样的问题。

最佳答案

因为你写道:

savefile.showSaveDialog(savefile); 

还有:

 int sf = savefile.showSaveDialog(null);

(两次)。您只需删除:

savefile.showSaveDialog(savefile);

关于java - 如何使用 JFileChooser.showSaveDialog 保存文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22261130/

相关文章:

c - 读入一个包含 5 行的文本文件,并将其填充到 C 中的二维数组中

regex - 如何列出包含源代码的目录中以 "U_"开头的所有单词

java - RestEasy 配置中的多个前缀

Java - 列出 int 数组中重复值的索引

android - TextView不正确的链接解析

java - AspectJ 可以与 Java 7 一起使用吗?

eclipse - 将我的 GWT、GAE 安装移动到我的项目中以进行源代码控制

java - Qt 嵌入式动画的最佳选择?

java - 当我切换选项卡时 JXMultiSplitPane 变得疯狂

java - 适用于 Java 和 Javascript 的兼容 AES 算法