Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/08/2015, 04:09
Avatar de Hatakke
Hatakke
 
Fecha de Ingreso: octubre-2011
Mensajes: 17
Antigüedad: 12 años, 7 meses
Puntos: 1
Problema con @override dispose

Buenas compañer@s,

Me gustaría controlar antes del cierre de un formulario si hay cambios en él y preguntar mediante un JoptionPane si se esta seguro de cerrar.

En los formularios añado una barra superior de accesos rápidos para moverme entre los diferentes formularios llamada cBarra. Por ese motivo necesito sobrescribir el metodo dispose para poder controlar el evento desde otra clase mediante formulario.dispose().

El codigo que tengo en el formulario es:

Código PHP:
private boolean verificar_cerrar_formulario (){
        
        
cPersona p1 = new cPersona (); //Dades formulari
        
cControlar_format cf = new cControlar_format ();
                
        
// Obtenemos el mismo registro que tenemos en el formulario
        
p1 p1.obtenir_cPersona(p1persona.getId_persona()); 
        
// Modificamos los registros mostrados en el formulario
        
p1.setDireccio(cf.arreglar_apostrofs(txt_direccio.getText()));
        
p1.setProvincia(cbx_provincia.getSelectedItem().toString());
        
p1.setPoblacio(cbx_poblacio.getSelectedItem().toString());
        
p1.setCodi_postal(txt_codi_postal.getText());
        
p1.setTelefon1(txt_tel1.getText());
        
p1.setTelefon2(txt_tel2.getText());
        
p1.setMail(cf.arreglar_apostrofs(txt_mail.getText()));
        
        return  
p1.equals(persona);
    }

@
Override
    
public void dispose(){
        
        
boolean comp_persona;
        
        
comp_persona verificar_cerrar_formulario ();
        
        if(
comp_persona == true){ //Es igual
            
this.dispose();
        }else{ 
// Es diferent  
            
cJOptionPane op = new cJOptionPane ();
            
int confirmado JOptionPane.showConfirmDialog(this,op.getMensajeCerrarFormulario(),op.getSeleccionOpcion(), JOptionPane.OK_OPTION);
            if (
JOptionPane.OK_OPTION == confirmado){ //Lo sé y me da igual
                
this.dispose();
            }
        }
    } 

El problema lo tengo que al confirmar de cerrarlo me entra en un bucle de mostrar el mensaje puesto que invoco al mismo metodo una y otra vez.

Alguien me puede echar una mano?

Gracias