J'ai créé un JOptionPane
et il n'a que deux boutons YES_NO_OPTION
.
Après JOptionPane.showConfirmDialog
apparaît, je veux cliquer YES BUTTON
pour continuer à ouvrir le JFileChooser
et si j’avais cliqué sur NO BUTTON
il devrait annuler l'opération.
Cela semble assez facile mais je ne suis pas sûr de savoir où est ma faute.
Extrait de code:
if (textArea.getLineCount() >= 1) { //The condition to show the dialog if there is text inside the textArea
int dialogButton = JOptionPane.YES_NO_OPTION;
JOptionPane.showConfirmDialog (null, "Would You Like to Save your Previous Note First?","Warning",dialogButton);
if (dialogButton == JOptionPane.YES_OPTION) { //The ISSUE is here
JFileChooser saveFile = new JFileChooser();
int saveOption = saveFile.showSaveDialog(frame);
if(saveOption == JFileChooser.APPROVE_OPTION) {
try {
BufferedWriter fileWriter = new BufferedWriter(new FileWriter(saveFile.getSelectedFile().getPath()));
fileWriter.write(textArea.getText());
fileWriter.close();
} catch(Exception ex) {
}
}
Vous devez regarder la valeur de retour de l'appel à showConfirmDialog
. C'EST À DIRE.:
int dialogResult = JOptionPane.showConfirmDialog (null, "Would You Like to Save your Previous Note First?","Warning",dialogButton);
if(dialogResult == JOptionPane.YES_OPTION){
// Saving code here
}
Vous testiez par rapport à dialogButton
, que vous utilisiez pour définir les boutons à afficher dans la boîte de dialogue. Cette variable n'a jamais été mise à jour. Ainsi, dialogButton
n'aurait jamais été autre chose que JOptionPane.YES_NO_OPTION
.
Selon la Javadoc pour showConfirmDialog
:
Retourne: un entier indiquant l'option sélectionnée par l'utilisateur
Essaye ça,
int dialogButton = JOptionPane.YES_NO_OPTION;
int dialogResult = JOptionPane.showConfirmDialog(this, "Your Message", "Title on Box", dialogButton);
if(dialogResult == 0) {
System.out.println("Yes option");
} else {
System.out.println("No Option");
}
int opcion = JOptionPane.showConfirmDialog(null, "Realmente deseas salir?", "Aviso", JOptionPane.YES_NO_OPTION);
if (opcion == 0) { //The ISSUE is here
System.out.print("si");
} else {
System.out.print("no");
}