04/02/2013, 01:57
|
| 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. |