java - sirve - personalizar joptionpane
JOptionPane SÍ/No Opciones Confirmar cuadro de diálogo Problema (3)
YES_NO_OPTION
JOptionPane
y solo tiene dos botones YES_NO_OPTION
.
Después de que JOptionPane.showConfirmDialog
, deseo hacer clic en YES BUTTON
para continuar abriendo el JFileChooser
y, si hago clic en NO BUTTON
, debería cancelar la operación.
Parece bastante fácil, pero no estoy seguro de cuál es mi error.
Fragmento de código:
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) {
}
}
Prueba esto,
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");
}
showConfirmDialog
mirar el valor de retorno de la llamada a showConfirmDialog
. ES DECIR:
int dialogResult = JOptionPane.showConfirmDialog (null, "Would You Like to Save your Previous Note First?","Warning",dialogButton);
if(dialogResult == JOptionPane.YES_OPTION){
// Saving code here
}
dialogButton
probando contra dialogButton
, que estaba utilizando para configurar los botones que debería mostrar el cuadro de diálogo, y esta variable nunca se actualizó, por lo que dialogButton
nunca habría sido otra cosa que JOptionPane.YES_NO_OPTION
.
Según el Javadoc para showConfirmDialog
:
Devuelve: un entero que indica la opción seleccionada por el usuario
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");
}