ACCEDER A UN CONTROL DE UN JFRAME DESDE UN JINTERNAL FRAME

Iniciado por eduardomanta, 22 Mayo 2010, 21:00 PM

0 Miembros y 3 Visitantes están viendo este tema.

eduardomanta

Hola.. mucho gusto a todos , espero que me puedan ayudar con este problemon :( , lo intentado de muchas formas pero nop funciona. yo soy algo nuevo en java es por eso que tal vez ustedes me pueden ayudar bueno el problema es este.

Tengo un Jframe principal --> Que vendria a hacer mi formulario principal en mi sistema, este jframe tiene un jtoolbar principla que tiene todos los botnes clasicos como : grabar,eliminar etc.

Tengo un Jinternalframe que es hijo de mi formulario principal .



Ahora cuando yo cargo mi formulario principal osea el jframe mi jtoolbar principal es invisible esto lo hago el metodo setvisible.

Lo que quiero hacer es que cuando mi jinternalframe hijo se abra desde mi formulario principal  , mi jtoolbarprincipal que se encuentra en el jframe principal sea visible .-> osea setvisible(true)  y cuando el jinterlframe se cierre mi jtoolbar prinicpal sea invisible otra vez .

Lo intentando con interfaces. pero no me funciona ,

Tambien haciendo herencia ami formulario principal pára acceder a su control pero tampoc funmcion

y por ultimo hize un metodo que me retorne el jtoolbarprincipla y lo llamo desde el formulario hijo y hay le aplico el setvisible pero nada que nada no se desaparece la

bendita barra.



Este es un poco de mi código



ESTE ES MI CODIGO

EN EL JFRAME FRINCIPAL

--=====================

    public JToolBar f_barra()
    {
               return jtbPrincipal;
    }

en el jinternalframe



    private void formInternalFrameActivated(javax.swing.event.InternalFrameEvent evt) {                                           
             frm_principal.f_barra().setVisible(true);

    }



--========== O TAMBIEN ASI  LO HE INTENTADO

MI INTERFAZ

public interface Ocultar {
  public  void f_ocultar(boolean ver);
}

MI METODO EN EL PRINCIPAAL=====

   public void f_ocultar(boolean  ver )
    {
       this.jtbPrincipal.setVisible(ver);
     
    }

==EN ELJINTERNALFRAME HIJO

   private void formInternalFrameActivated(javax.swing.event.InternalFrameEvent evt) {                                           

       ((Ocultar)frm_principal).f_ocultar(true);

    }

  PERO NADA ME FUNCIONA.!!!!!!!!!! OJALA QUE HA ALGUIEN ME PUEDA AYUDAR GRACIAS ...

ESPERO SUS RESPUESTAS... :(:(

egyware

No entendi, revisa los eventos que se pueden generar de una ventana como capturarlos y procesarlos talvez te sirva

Leyer

La solucion es agregando un InternalFrameListener

Código (java) [Seleccionar]
                        internalFrame.addInternalFrameListener(new InternalFrameListener() {
@Override
public void internalFrameClosing(InternalFrameEvent arg0) {
this.toolBar.setVisible(false);
}
@Override public void internalFrameOpened(InternalFrameEvent arg0)      {}
@Override public void internalFrameIconified(InternalFrameEvent arg0)   {}
@Override public void internalFrameDeiconified(InternalFrameEvent arg0) {}
@Override public void internalFrameDeactivated(InternalFrameEvent arg0) {}
@Override public void internalFrameClosed(InternalFrameEvent arg0)      {}
@Override public void internalFrameActivated(InternalFrameEvent arg0)   {}
});


Un Saludo.

eduardomanta

Pero el Jtoolbar esta en el formulario Principal :S
No en el mismo jinternalframe :S

Leyer

#4
Bueno 

jezu00

Pasa como arguemento del constructor por defecto el Jframe padre al hijo

dato miembro
JFrame a;
public Clase(.....,JFrame padre){
a=padre;
}

y en el metodo que cierre le ventana aparte de dispose() o setvisible(false) añadrs
a.f_ocultar(true)



eduardomanta

pero como voy a heredar a una variable tipo jframe al método f_ocultar :S ???


eduardomanta

YA ME SALIO GRACIAS POR LAS RESPUESTA
ME GUIE DE LA ULTIMA RESPUESTA
PERO EN VEZ DE PASARLE EL JFRAME PRINCIPAL AL CONSTRUCTOR DEL JINTERNALFRAME HIJO


LE PASE EL JTOOLBAR PRINCIPAL AL CONSTRUCTOR DEL HIJO

Frm_Empleado emple = new Frm_Empleado(this.jtbPrincipal);

Y ME MI JINTERNALFRAME HIJO = SOLO APLICE
SET VISIBLE TRUE O FALSE EN LOS EVENTO DESEADOS

GRACIAS.......... :D  A TODOS