Ver Mensaje Individual
  #15 (permalink)  
Antiguo 04/02/2013, 01:57
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Adaptar largo y ancho de un jframe al de un jpanel

Reorganiza el código de otra manera.

Tu FachadaVentanas.getInstance().fabricarPanelMant(ac cion, tipo); parece ser que es el que llama por debajo al getWindowAncestor, pero pones el panel dentro de la ventana (imagino, no se que es eso de this.superPanel) en his.superPanel.add(objpanel); dos líneas más abajo.

No puedes llamar a getWindowAncestor en la construcción de un panel, antes de de haberlo metido en ningún sitio. Se me ocurren algunas opciones

Pasa el JFrame como parametro a fabricarPanelMant(). Así lo tendrás disponible y no necesitarás llamar a getWindowAncestor().

Otra opción es añadir al panel en el constructor un addHierarchyListener(). De esta forma te saltará un evento cuando el panel se añada a alguna ventana y ahí podrás hacer la llamada a getWindowAncestor().

Y una tercera opción es añadir al panel un addComponentListener(). Esto te hará llegar un evento cuando el panel se oculte o visualice. Reemplazaría posiblemente a la llamada que estás haciendo a getWindowAncestor() par a llamar a addWindowListener(). En vez de enterarte cuando se cierra el JFrame, te enterarías cuándo se oculta el panel.

Se bueno.
__________________
Apuntes Java
Wiki de Programación