ventana una tiempo otro ocultar formulario despues con como cerrar boton automaticamente activo abrir java swing jframe windowlistener

una - como cerrar un jframe en java con un boton



Haga algo cuando se haga clic en el botón Cerrar en un JFrame (6)

Anular el método de cierre de la ventana.

public void windowClosing(WindowEvent e)

Se invoca cuando una ventana está en proceso de cerrarse. La operación de cierre puede anularse en este punto.

¿Hay alguna manera de ''hacer algo'' de alguna manera cuando hago clic en el botón rojo de cerrar en la barra de título de un JFrame? Lo que quiero hacer es llamar a un método llamado confirmExit() cuando se hace clic en dicho botón. Hasta ahora, la única opción que tengo es hacer que no haga nada, pero no quiero eso. ¿Cómo logro esto?

Gracias por adelantado.


Esto es lo que puse como una opción de menú donde hice un botón en un JFrame para mostrar otro JFrame . Solo quería que el nuevo marco fuera visible y no destruir el que estaba detrás. Inicialmente oculté el primer JFrame , mientras que el nuevo se hizo visible. Al cerrar el nuevo JFrame , me deshice de él seguido de una acción de volver a hacer visible el anterior.

Nota: El siguiente código se expande fuera de la respuesta de Ravinda y ng es un JButton :

ng.addActionListener((ActionEvent e) -> { setVisible(false); JFrame j = new JFrame("NAME"); j.setVisible(true); j.addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent windowEvent) { setVisible(true); } }); });


Esto puede funcionar:

jdialog.addWindowListener(new WindowAdapter() { public void windowClosed(WindowEvent e) { System.out.println("jdialog window closed event received"); } public void windowClosing(WindowEvent e) { System.out.println("jdialog window closing event received"); } });

Fuente: https://alvinalexander.com/java/jdialog-close-closing-event


Prueba esto:

setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

Funcionará.


frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

también funciona Primero crea un marco JFrame llamado, luego agrega este código debajo.


import javax.swing.JOptionPane; import javax.swing.JFrame; /*Some piece of code*/ frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); frame.addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent windowEvent) { if (JOptionPane.showConfirmDialog(frame, "Are you sure to close this window?", "Really Closing?", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION){ System.exit(0); } } });