Este artículo te mostrará como cerrar una ventana en Java. Este procedimiento es mucho más fácil si usas JFrame en Swing, pero también puedes hacerlo a través de Frame en AWT.

Método 1
Método 1 de 2:
Usar javax.swing.JFrame

  1. 1
    Obtén una instancia de un JFrame o crea una nueva.
  2. 2
    Establece la operación predeterminada de cierre. Para establecer la operación predeterminada de cierre tienes que usar el método setter que se encuentra dentro de la clase JFrame, setDefaultCloseOperation, que determina qué es lo que ocurre al hacer clic en el botón de cierre. Este método toma los siguientes parámetros:
    • WindowConstants.EXIT_ON_CLOSE: cierra el marco y finaliza la ejecución del programa.
    • WindowConstants.DISPOSE_ON_CLOSE: cierra el marco, pero no necesariamente finaliza la ejecución del programa.
    • WindowConstants.HIDE_ON_CLOSE: hace que el marco parezca cerrarse cambiando la propiedad de visibilidad a "falso". La diferencia entre HIDE_ON_CLOSE y DISPOSE_ON_CLOSE es que la última libera todos los recursos utilizados por el marco y sus componentes.
    • WindowConstants.DO_NOTHING_ON_CLOSE: no hace nada al presionar el botón de cierre. Esto podría ser útil, por ejemplo, si quisieras mostrar un mensaje de confirmación antes de cerrar la ventana. En ese caso, puedes agregarle un WindowListener al marco y sobrescribir el método windowClosing. A continuación verás un ejemplo de una operación personalizada de cierre:
        frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        frame.addWindowListener(new WindowAdapter() {
        	@Override
        	public void windowClosing(WindowEvent e) {
                        // Se pide una confirmación antes de finalizar el programa
        		int option = JOptionPane.showConfirmDialog(
        			frame, 
        			"¿Estás seguro de que quieres cerrar la aplicación?",
        			"Confirmación de cierre", 
        			JOptionPane.YES_NO_OPTION, 
        			JOptionPane.QUESTION_MESSAGE);
        		if (option == JOptionPane.YES_OPTION) {
        			System.exit(0);
        		}
        	}
        });
        

Método 2
Método 2 de 2:
Usar java.awt.Frame

  1. 1
    Obtén una instancia de un Frame o crea una nueva.
  2. 2
    Agrega un listener para la ventana. Llama al método addWindowListener en la instancia. El argumento requerido es WindowListener. Puedes implementar todos los métodos de la interfaz WindowListener o sobrescribir solamente los métodos que necesites de la clase WindowAdapter.
  3. 3
    Ocúpate del evento de cierre de ventana. Implementa el método windowClosing de la interfaz WindowListener o sobrescribe el de la clase WindowAdapter. Hay dos formas de cerrar una ventana:
    • Deshaciéndote de la ventana una vez que el usuario haga clic en el botón de cierre:
      • Llamar al método dispose dentro del método windowClosing.
      • frame.addWindowListener(new WindowAdapter() {
        	@Override
        	public void windowClosing(WindowEvent e) {
                        //Este método se deshace de la ventana una vez que el usuario hace clic en el botón de cierre.
        		dispose();
        	}
        });
        
    • Finalizando el programa una vez que el usuario haga clic en el botón de cierre:
      • Llama al método System.exit dentro del método windowClosing
      • frame.addWindowListener(new WindowAdapter() {
        	@Override
        	public void windowClosing(WindowEvent e) {
                        //Este método finaliza el programa una vez que el usuario hace clic en el botón de cierre.
        		System.exit(0);
        	}
        });
        

Consejos

  • Es preferible usar Swing antes que AWT, ya que este último es obsoleto.
  • Si usas WindowAdapter no es necesario que implementes todos los métodos que te obliga a usar WindowListener, sino solo aquellos que necesites.

Acerca de este wikiHow

wikiHow es un "wiki", lo que significa que muchos de nuestros artículos están escritos por varios autores. Para crear este artículo, 10 personas, algunas anónimas, han trabajado para editarlo y mejorarlo con el tiempo. Este artículo ha sido visto 51 645 veces.
Categorías: Programación