So speichern Sie eine Datei mit JFileChooser.showSaveDialog?
Mache ich einen text-editor in Java und mein save-Funktion nicht so funktioniert wie ich es wollte. hier ist der code, den ich verwenden, um eine Datei zu speichern :
public void actionPerformed(ActionEvent event) {
String filename = JOptionPane.showInputDialog("Name this file");
JFileChooser savefile = new JFileChooser();
savefile.setSelectedFile(new File(filename));
savefile.showSaveDialog(savefile);
BufferedWriter writer;
int sf = savefile.showSaveDialog(null);
if(sf == JFileChooser.APPROVE_OPTION){
try {
writer = new BufferedWriter(new FileWriter(filename,
false));
text.write(writer);
writer.close();
JOptionPane.showMessageDialog(null, "File has been saved","File Saved",JOptionPane.INFORMATION_MESSAGE);
//true for rewrite, false for override
} catch (IOException e) {
e.printStackTrace();
}
}else if(sf == JFileChooser.CANCEL_OPTION){
JOptionPane.showMessageDialog(null, "File save has been canceled");
}
}
Wenn ich auf die Schaltfläche speichern Sie das Fenster sich öffnet und ich aussuchen, wo ich es speichern möchten. Nachdem ich klicken Sie auf speichern, es öffnet sich das Fenster wieder und speichert in mein Eclipse Workspce. Ich googelte im internet und keiner hatte das gleiche problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das problem ist, dass Sie nie die ausgewählte Datei. Sie nur setSelectedFile auf eine Datei, die erstellt werden, nachdem eine fest programmierte name. Danach muß ein writer instanziert werden auf diese Datei, aber das problem ist, dass die gewählte Datei wird nicht übernommen. Eigentlich ist die Datei, die Sie schreiben, ist die Datei(Dateiname), die in der Projekt-root-Verzeichnis.
Versuchen Sie, diese zu Ihrem try-block:
statt dieser:
Es ist, weil Sie schrieb:
Und auch:
(Zweimal). Sie brauchen nur zu löschen: