为什么我的"Save"按钮不起作用?



我的程序中有一个最大的问题。我已经创建了"保存"按钮,但如果.txt文件是新的,它会保存(然后该按钮执行"另存为"功能)。但当我打开文件,然后键入一些内容并尝试保存时,它没有保存:s。有人能帮我吗?

这是代码:

fileSave.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        if(currentFile == null) {
            int saveResult = fileSelect.showSaveDialog(null);
            if(saveResult == fileSelect.APPROVE_OPTION) {
                saveFile(fileSelect.getSelectedFile(), field.getText());            
            } else {
                saveFile(currentFile, field.getText());
            }
        }
    }
});
public void saveFile(File file, String contents) {
    BufferedWriter writer = null;
    String filePath = file.getPath();
    if(!filePath.endsWith(".txt")) {
        filePath += ".txt";
    }
    try {
        writer = new BufferedWriter(new FileWriter(filePath));
        writer.write(contents);
        writer.close();
        field.setText(contents);
        setTitle("Editex - " + filePath);
        currentFile = file;
    } catch (Exception e) {
    }
}

当currentFile!=null,这就是我假设的情况,当您试图保存一个已经有Filename的文件时。

这样做:

if(currentFile == null) {
    // Handle if new file
} else {
    // Handle an existing file
}

移动

saveFile(currentFile, field.getText());

转换为上面的else部分。

目前,它位于if(currentFile == null)中,这不是您在此处调用saveFile(null, field.getText())的正确位置。


还有

catch(Exception e) {
}

糟糕的是,永远不要吞下一个例外,什么都不做,你永远不会知道例外是否发生,只是什么都不会发生。

相关内容

  • 没有找到相关文章

最新更新