Este artículo le mostrará cómo cerrar una ventana en Java. Cerrar una ventana es mucho más fácil con Swing
JFrame
pero también es factible con AWT
Cuadro
Pasos
Método 1 de 2: uso de javax.swing. JFrame
Paso 1. Obtenga una instancia de
JFrame
o cree uno nuevo.
Paso 2. Establezca la operación de cierre predeterminada
La operación de cierre predeterminada se establece utilizando el método de establecimiento dentro del
JFrame
clase
setDefaultCloseOperation
que determina qué sucede cuando se hace clic en el botón de cierre y toma los siguientes parámetros:
-
WindowConstants. EXIT_ON_CLOSE
-
WindowConstants. DISPOSE_ON_CLOSE
-
WindowConstants. HIDE_ON_CLOSE
HIDE_ON_CLOSE
y
DISPOSE_ON_CLOSE
- es que este último libera todos los recursos utilizados por el marco y sus componentes.
-
WindowConstants. DO_NOTHING_ON_CLOSE
WindowListener
al marco y anulando
ventanaCierre
método. Ejemplo de la operación de cierre personalizado:
frame.setDefaultCloseOperation (WindowConstants. DO_NOTHING_ON_CLOSE); frame.addWindowListener (new WindowAdapter () {@Override public void windowClosing (WindowEvent e) {// Solicitar confirmación antes de terminar el programa. int option = JOptionPane.showConfirmDialog (frame, "¿Está seguro de que desea cerrar la aplicación?", "Cerrar Confirmación", JOptionPane. YES_NO_OPTION, JOptionPane. QUESTION_MESSAGE); if (opción == JOptionPane. YES_OPTION) {System.exit (0);}}});
Método 2 de 2: uso de java.awt. Frame
Paso 1. Obtenga una instancia de
Cuadro
o cree uno nuevo.
Paso 2. Agregue el detector de ventana
Llama
addWindowListener
método en la instancia. El argumento requerido es
WindowListener
. Puede implementar todos los métodos del
WindowListener
interfaz o anule solo los métodos que necesita de
WindowAdapter
clase.
Paso 3. Manejar el evento de cierre de la ventana
Implementar
ventanaCerrando
método de
WindowListener
interfaz o anularlo desde
WindowAdapter
clase. Hay dos formas de cerrar una ventana:
-
Deseche la ventana después de hacer clic en el botón de cierre:
-
Llama
disponer
método en el interior
ventanaCerrando
- método.
frame.addWindowListener (new WindowAdapter () {@Override public void windowClosing (WindowEvent e) {// Desecha la ventana después de hacer clic en el botón de cierre. dispose ();}});
-
Termine el programa después de hacer clic en el botón de cierre:
-
Llama
System.exit
método en el interior
ventanaCierre
- método.
frame.addWindowListener (new WindowAdapter () {@Override public void windowClosing (WindowEvent e) {// Termina el programa después de hacer clic en el botón de cierre. System.exit (0);}});
Consejos
- Se prefiere Swing sobre AWT ya que este último está realmente desactualizado.
-
Utilizando
WindowAdapter
no tienes que implementar todos y cada uno de los métodos
WindowListener
- el contrato nos dice que lo hagamos, pero solo los que necesitamos.