Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何保存,另存为Java?_Java_Swing_Save_Actionlistener - Fatal编程技术网

如何保存,另存为Java?

如何保存,另存为Java?,java,swing,save,actionlistener,Java,Swing,Save,Actionlistener,你好,我的文本编辑器类程序有点问题。我希望只有在调用了“另存为”并且调用了“保存”时,我的“保存”功能才起作用,并且如果调用了“保存”,它会将JTextArea中的文本附加到“另存为”创建的文件中。我使用JMenuItems中的ActionListeners调用Save和Save As操作。以下是“另存为”的代码: FileDialog fileDialogSave = new FileDialog(frame, "Save", FileDialog.SAVE); fileDialogSave.

你好,我的文本编辑器类程序有点问题。我希望只有在调用了“另存为”并且调用了“保存”时,我的“保存”功能才起作用,并且如果调用了“保存”,它会将JTextArea中的文本附加到“另存为”创建的文件中。我使用JMenuItems中的ActionListeners调用Save和Save As操作。以下是“另存为”的代码:

FileDialog fileDialogSave = new FileDialog(frame, "Save", FileDialog.SAVE);
fileDialogSave.setVisible(true);        
String userProjectSavePath = fileDialogSave.getDirectory() + fileDialogSave.getFile();
File userProjectSave = new File(userProjectSavePath);
try (PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(userProjectSave, true)))) {
userProjectSave.createNewFile();
String userProjectNameToSave = codeArea.getText();
out.println(userProjectNameToSave);
} catch (IOException e1) {
    e1.printStackTrace();
}
Save和Save As都嵌套在
静态类ActionSaveAs实现ActionListener{public void actionPerformed(ActionEvent e){…}


问题是我无法访问Save类中的字符串userProjectSavePath,因此我无法将新文本附加到与另存为中相同的文件中。

相反,如果
当前文件
null
,则让您的概念
saveDocument()
方法调用
savedocuments()
。下面的概要介绍了Charles Bell引用的HTMLDocumentEditor中所采用的方法


为了更快地获得更好的帮助,请发布一个(经过测试且可读性最低的完整示例)。
public void saveDocument() {
    if (currentFile != null) {
        // Save in currentFile
    } else {
        saveDocumentAs();
    }
}

public void saveDocumentAs() {
    // Check before overwriting existing file
}