feed twitter facebook LinkedIn facebook

Java » Cerrar una Ventana con Java Swing

Junio 4, 2010 por Víctor Cuervo . 5674 visitas 13 Comentarios Imprimir Imprimir

Una vez visto el ejemplo de Hola Mundo con Java Swing vamos a dar paso a realizar más cosas con Java Swing. En este caso, partiendo del ejemplo de Hola Mundo, vamos a ver como podemos cerrar una ventana con Java Swing. De esta manera controlaremos las acciones a realizar una vez que el usuario cierre la ventana.

La idea principal consiste en escuchar el evento windowClosing. El evento windowClosing es un evento del adaptador de ventana o WindowAdapter.

Recuerda que para la gestión de eventos tenemos Interfaces y Adaptadores. Los interfaces nos obligan a codificar todos los eventos a gestionar, mientras que en el Adaptador solo tenemos que gestionar el evento que necesitemos.

Pero lo primero es utilizar el método .addWindowListerner para suscribirnos a los eventos que se produzcan en la ventana. Así, en el constructor de nuestro programa utilizaremos dicho método:

  1. public CerrarVentana(){
  2. addWindowListener(new WindowAdapter() {...});
  3. }

Como podemos comprobar en el código, al método .addWindowListener le estamos pasando una clase WindowAdapter.

El método asociado al cierre de la ventana es windowClosing. En él solo vamos a realizar un exit del sistema con System.exit.

  1. public void windowClosing(WindowEvent e) {
  2. System.exit(0);
  3. }

Así nuestro WindowAdapter quedaría de la siguiente forma para gestionar el cierre de una ventana con Java Swing.

  1. public CerrarVentana(){
  2. addWindowListener(new WindowAdapter() {
  3. public void windowClosing(WindowEvent e) {
  4. System.exit(0);
  5. }
  6. });
  7. }

Aunque nosotros solo hemos forzado un System.exit, en el método windowClosing podemos hacer lo que queramos. Por ejemplo, preguntar al usuario si está seguro de cerrar.

Descargar el Codigo
Descargar el código
Error en el Codigo
Error en el código
Foro sobre Java Swing
Foro sobre Java Swing
tags: , , , , , ,

Artículos relacionados:

13 comentarios »

Redifusión RSS de los comentarios de la entrada. TrackBack URI

1 2
  1. Enderson
    Noviembre 1, 2011 #

    Buen aporte. En el tema este de cerrar ventanas y sus eventos, me pregunto: como hacer para alternar entre ventanas jdialogs? Me explico, en una app con un solo jframe y muchos dialogs uso jbuttons para abrirlos y al tener varios activos y llamo uno estos buscan el foco todos los q estan abiertos y se vienen con el, por q sucede esto? Para llamarlos utilizo btnactionperformed y les agrego sus dimensiones con setSize y setVisible en true respectivo.

  2. javahierro
    Febrero 19, 2012 #

    Como puedo implementar este codigo en una jsp en donde cuando el usuario cierre el navegador pueda detectar el cierre con este codigo ya que que necesito tomar los datos de fecha-hora de la sesion y cuanto tiempo se estuvo en la sesion. Como puedo implementarlo esto en mi JSP ayudenme porfa

  3. Víctor Cuervo
    Febrero 23, 2012 #

    @javahierro,

    El problema en las JSP es que cuando tenemos un modelo de varias JSP no solemos saber por qué página se sale el usuario. Si sabes la página o páginas puedes manejar el evento javascript onunload() – https://developer.mozilla.org/en/DOM/window.onunload

    Otra forma es controlarlo por la sesión del usuario. Tienes los métodos getCreationTime y getLastAccessedTime para saber cuándo se creó la sesión y hace cuanto tiempo que un usuario no la utiliza.

    El problema en este caso consiste saber cuándo se le cierra la sesión a un usuario (si no la cierras tu automáticamente). Ya que es por inactividad. Que puedes establecerlo vía configuración:

    <session-config>
    <session-timeout>60</session-timeout>
    </session-config>

    O vía código session.setMaxInactiveInterval(600);

    Espero que te oriente un poco.

    Saludos.

1 2

Deje un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*