使用JFileChooser showSaveDialog保存的java文件,即使在“取消”状态下
我保存了一个文件,除了一个问题外,它工作正常。当按下取消按钮时,文件的副本保存在java目录中。仅当按下“取消”按钮时才会发生这种情况,如果使用“保存”按钮,则文件将在用户选择的位置结束。我怎样才能阻止这种情况发生,这样当按下“取消”按钮时,任何地方都不会保存任何内容
下面是我的代码,谢谢大家的帮助。谢谢
// Save dialog
private void savePlaylist() {
JFileChooser savePlaylistDialog = new JFileChooser();
savePlaylistDialog.setSelectedFile(new File(newPlaylistNameTxt.getText() + ".txt"));
savePlaylistDialog.showSaveDialog(playlistDialogs);
File savePlaylist = savePlaylistDialog.getSelectedFile();
try {
outFile = new PrintWriter(new FileWriter(savePlaylist));
outFile.println(newPlaylistInformationTxt.getText());
outFile.close();
// Plays a sound when play() is called (edited from Bombard)
try {
Clip saveButtonSound = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream(new File("Tri-tone.wav"));
saveButtonSound.open(ais);
saveButtonSound.start();
} catch (Exception ex) {
ex.printStackTrace();
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "File could not be written, try again.");
}
}
# 1 楼答案
showSaveDialog应返回用户是否已取消,并且您的代码应相应执行。此时,无论用户在“保存”对话框中做了什么,都可以进行保存
# 2 楼答案
savePlaylistDialog.showSaveDialog(playlistDialogs);
上面的方法调用返回一个
int
。您需要检查它的值-如果用户单击保存按钮,它将返回JFileChooser.ACCEPTED_OPTION
。在这种情况下,您将获取返回值(可以接受/保存或取消),忽略它,然后继续将数据写入磁盘# 3 楼答案
以下是我使用的固定代码: