【发布时间】:2013-11-30 07:39:43
【问题描述】:
我的程序中有一个最大的问题。我创建了保存按钮,但如果 .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) {
}
}
【问题讨论】:
-
你可能吞下了异常吗?永远不要那样做,处理它。
-
当您尝试保存已打开的文件时,您确定
saveFile会执行吗?我假设,这个 if 语句if(currentFile == null)不会让你的方法被调用。 -
什么是
field?为了尽快获得更好的帮助,请发布SSCCE。在这种情况下,如果字段是JTextComponent,它将有一个专门用于保存内容的方法。另外,将catch (Exception e) { ..形式的代码更改为catch (Exception e) { e.printStackTrace(); // very informative! ..
标签: java actionlistener savechanges