elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  [SOLUCIONADO]¿cómo detectar cuando se cierra un JInternalFrame?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO]¿cómo detectar cuando se cierra un JInternalFrame?  (Leído 5,791 veces)
kinos

Desconectado Desconectado

Mensajes: 104



Ver Perfil
[SOLUCIONADO]¿cómo detectar cuando se cierra un JInternalFrame?
« en: 2 Junio 2010, 00:19 »

Hola:

   ¿Cómo puedo detectar cuando se cierra un JInternalFrame con la X de arriba?

   Quiero hacer lo típico de cuando cierras un documento que te pregunte si quieres guardar los cambios, ¿esa ventanita sería un jDialog?


« Última modificación: 19 Agosto 2010, 07:31 por LEYER » En línea

Leyer
Moderador
***
Desconectado Desconectado

Mensajes: 782


leyer@elhacker.net


Ver Perfil WWW
Re: ¿cómo detectar cuando se cierra un JInternalFrame?
« Respuesta #1 en: 2 Junio 2010, 00:47 »

Código
  1. internalFrame.addInternalFrameListener(new InternalFrameListener() {
  2. @Override
  3. public void internalFrameClosing(InternalFrameEvent arg0) {}
  4. @Override public void internalFrameOpened(InternalFrameEvent arg0)      {}
  5. @Override public void internalFrameIconified(InternalFrameEvent arg0)   {}
  6. @Override public void internalFrameDeiconified(InternalFrameEvent arg0) {}
  7. @Override public void internalFrameDeactivated(InternalFrameEvent arg0) {}
  8. @Override public void internalFrameClosed(InternalFrameEvent arg0)      {
  9. //....
  10. }
  11. @Override public void internalFrameActivated(InternalFrameEvent arg0)   {}
  12. });


En línea

sapito169


Desconectado Desconectado

Mensajes: 566



Ver Perfil
Re: ¿cómo detectar cuando se cierra un JInternalFrame?
« Respuesta #2 en: 2 Junio 2010, 00:58 »

primero tines que hacer que no haga nada a la hora de presionar la x

Código:
jInternalFrame1.setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);


luego tienes que agregarle un listener para que este atento a la hora de cerrar el programa

Código:
jInternalFrame1.addInternalFrameListener(new javax.swing.event.InternalFrameListener() {
            public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) {
                jInternalFrame1InternalFrameClosing(evt);
            }
            public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) {
            }
        });


no te preocupes por lo horriblemente largo que se ve igual el ide te autogenera todo el codigo

y finalmente para que poner terminar

Código:
private void jInternalFrame1InternalFrameClosing(javax.swing.event.InternalFrameEvent evt) {                                                     
        int opcion = JOptionPane.showConfirmDialog(this, "desea guardar", "mi titulo", JOptionPane.YES_NO_OPTION);
        if (opcion == JOptionPane.YES_OPTION) {
            guardaInformacion();
            jInternalFrame1.dispose();
        }
       
    } 
« Última modificación: 2 Junio 2010, 01:06 por sapito169 » En línea

kinos

Desconectado Desconectado

Mensajes: 104



Ver Perfil
Re: ¿cómo detectar cuando se cierra un JInternalFrame?
« Respuesta #3 en: 2 Junio 2010, 01:13 »

ok. Ya entiendo, con el InternalFrameListener.

jeje... llevaba tanto tiempo sin tocar las ventanitas que no me acordaba ya de que el ide te generaba el codigo  :silbar:

gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines