studio reales proyectos programacion libro introducción incluye herramientas fundamentos fuente español código con avanzado aplicaciones java swing jframe joptionpane windowlistener

java - reales - libro de android studio en español pdf



Java: JFrame en las acciones de salida se cierra de todos modos incluso si se hace clic en "No" (2)

Compruebe si ha configurado una operación de cierre predeterminada como,

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

incluso si no lo ha hecho, su marco simplemente se ocultará (ya que la operación de cierre predeterminada es HIDE_ON_CLOSE ) al hacer clic en la opción "No".

en su lugar, agregue esto como operación de cierre predeterminada.

jframe.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

esto mantendrá su marco en estado existente, si un usuario elige la opción "No".

¿Sabes por qué mi JFrame se cierra incluso si hago clic en el botón "No"? Este es mi código:

jframe.addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent windowEvent) { int confirm = JOptionPane.showOptionDialog(jframe, "Sei sicuro di voler chiudere EconomatoUTL?", "Attenzione!", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null); if (confirm == JOptionPane.YES_OPTION) { Runtime runtime = Runtime.getRuntime(); try { runtime.exec("cmd /C basexserver.bat stop"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.exit(1); } } });

Lo he encontrado en varios foros y dicen que funciona ... ¿Dónde está el error?


Ya estás en un evento de windowClosing , que no se cancela. Entonces la ventana estará cerrada.

Ha pasado un tiempo, pero probablemente puedas cancelar el evento usando windowEvent .