ventana sirve showmessagedialog showinputdialog que personalizar para emergente ejemplos java swing jfilechooser

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"); }