J'écris un éditeur de texte très simple et j'ai rencontré un problème mineur. Code ci-dessousRetour à une boîte de dialogue spécifique
Lors de l'enregistrement d'un fichier, lorsqu'un fichier existe, l'utilisateur sera invité à remplacer, annuler ou ne pas écraser (en ayant l'option d'essayer à nouveau).
j'ai donc une JFileChooser qui invite l'utilisateur à remplacer: oui, non, annuler
Dans le cas de non être sélectionné, il doit revenir à la boîte de dialogue JFileChoose, mais je tout simplement ne savent pas Comment. Quelqu'un peut-il m'aider à ce sujet? L'annulation et oui options ne sont pas des problèmes (pour autant que je sache, ne l'ont pas testé en profondeur)
String contents = textArea.getText();
if (openPath != null) {
savePath = openPath;
} else if (saveAsPath != null) {
savePath = saveAsPath;
} else if (savePath != null) {
savePath = savePath;
} else if (openPath == null) {
JFileChooser saveFile = new JFileChooser();
int returnVal = saveFile.showOpenDialog(null);
if (returnVal == saveFile.APPROVE_OPTION) {
savePath = saveFile.getSelectedFile();
if (!savePath.exists()) {
FileWriter fstream = new FileWriter (savePath);
BufferedWriter saveWrite = new BufferedWriter(fstream);
saveWrite.write(contents);
saveWrite.close();
} else if (savePath.exists()) {
JOptionPane overwritePrompt = new JOptionPane();
Object[] options = {"Yes","No","Cancel"};
int n = JOptionPane.showOptionDialog(overwritePrompt,
"Already exists. Overwrite?","Overwrite File?",
JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,
null,options,options[2]);
if (n == 0) {
FileWriter fstream = new FileWriter(saveAsPath);
BufferedWriter out = new BufferedWriter(fstream);
out.write(contents);
out.close();
} else if (n == 1) {
savePath = null;
openPath = null;
saveAsPath = null;
return; // should return to JFileChooser
} else {
savePath = null;
openPath = null;
saveAsPath = null;
return;
}
}
} else {
return;
}
Wow, ça craint. Merci homme - Sent horrible détruire ce code, mais vous êtes mort. Je n'ai jamais regardé beaucoup dans JChooseFile - juste allé par l'exemple –