Java 为什么是我的;“保存”;按钮不存在';不行?
我的程序中有一个最大的问题。我已经创建了Save按钮,但是如果.txt文件是新的,它就会保存(然后该按钮会执行“SaveAs”功能)。但当我打开文件,然后键入一些东西并试图保存,但它不保存:s。有人能帮我吗 代码如下:Java 为什么是我的;“保存”;按钮不存在';不行?,java,actionlistener,savechanges,Java,Actionlistener,Savechanges,我的程序中有一个最大的问题。我已经创建了Save按钮,但是如果.txt文件是新的,它就会保存(然后该按钮会执行“SaveAs”功能)。但当我打开文件,然后键入一些东西并试图保存,但它不保存:s。有人能帮我吗 代码如下: fileSave.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(currentFile == null) {
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,这是我假设的情况,当您试图保存一个已经有文件名的文件时 这样做:
if(currentFile == null) {
// Handle if new file
} else {
// Handle an existing file
}
移动
进入上述的else部分
目前,它位于if(currentFile==null)
中,在这里调用saveFile(null,field.getText())
时,这不是正确的位置
也
是坏的,永远不要吞咽异常,什么也不做,你永远不会知道异常是否发生,只是什么都不会发生。你可能吞咽异常吗?千万不要这样做,处理它。您确定在尝试保存现有打开的文件时执行
saveFile
?我假设这个if语句if(currentFile==null)
不允许调用您的方法?为了更快地获得更好的帮助,请发布一个。在这种情况下,如果字段是JTextComponent
,它将有一个专门用于保存内容的方法。另外,将形式为catch(Exception e){..
的代码更改为catch(Exception e){e.printStackTrace();//非常有用!
非常感谢:)。但它不保存我的“输入”有多好?你的意思是什么,它不保存你的“输入”,你的“输入”是什么意思?它不保存我的“输入”新行按钮您需要解析文本字段的值,以找到换行符并将其添加到输出文件中。有很多示例说明如何在线执行此操作。
saveFile(currentFile, field.getText());
catch(Exception e) {
}