java - 如何保存文本文件而不必每次都输入文件名?

标签 java

大家好,我正在创建一个简单的文本编辑器作为一个项目,但在将键入的内容保存为文件时遇到了麻烦。我可以使用另存为原则保存文件,并在对话框中提示用户输入文件名。

我遇到的问题是实现保存,这样它就可以保存到打开的文件中,而不必每次都转到对话框,就像有人按 Ctrl+S 时那样。有人知道我将如何实现此功能吗?

这是我的一些代码:

JMenuItem saveFile = new JMenuItem(new AbstractAction("Save") {

    @Override
    public void actionPerformed(ActionEvent e) {
        JFileChooser save = new JFileChooser();
        File filename = save.getSelectedFile();
        if(opened == false && saved == false) {
            save.showSaveDialog(null);
            int confirmationResult;
            if(filename.exists()) {
            confirmationResult = JOptionPane.showConfirmDialog(getParent(), "Replace existing file?");
                if(confirmationResult == JOptionPane.YES_OPTION) {
                    saveFile(filename);                     
                }
            } else {
                saveFile(filename);
            }
        } else {
            saveFile(filename);
        }
    }
});
saveFile.setPreferredSize(new Dimension(100, 20));
saveFile.setEnabled(true);

保存方法:

private void saveFile(File filename) {
    try {
        BufferedWriter writer = new BufferedWriter(new FileWriter(filename));
        writer.write(textArea.getText());
        writer.close();
        saved = true;
        editorWindow.setTitle("JavaText - " + filename.getName());
    } catch (IOException err) {
        err.printStackTrace();
    }
}

最佳答案

如果您将打开的文件对象存储在您的应用程序中的某处,您可以使用 KeyListener 或 KeyAdapter 将其传递到您的 saveFile 方法中。在没有看到更多应用程序的情况下,很难说出将它放在哪里最好,但如果您只是将它存储在某个地方的变量中,您就可以引用它。

关于java - 如何保存文本文件而不必每次都输入文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23713897/

相关文章:

java - 更改数组的多个值

java - 当我在 javafx 中使用 Parent As Node 时 TranslateTransition 显示白色背景

java - 下载图像后如何在java应用程序中显示图像

java - 从 Java 类内部调用存储过程并写入控制台?

java - 构造函数中的可重写方法调用有什么问题?

java - 以编程方式为 WebSphere 5.x 请求发送方绑定(bind) BasicAuth Web 服务客户端设置凭证

java - 如何在 Hibernate Search 中使用定冠词搜索关键字?

java - 如何检测电池电量低 : Android?

java - 将 List<Map<String, Object>> 转换为 Map<String, Integer>

java - 遇到空指针异常需要第三双眼睛来协助