Foro de elhacker.net

Programación => Java => Mensaje iniciado por: pisagatos en 21 Febrero 2011, 02:55 am



Título: Redimensionar tamaño JPanel dentro de otro JPanel [SOLUCIONADO]
Publicado por: pisagatos en 21 Febrero 2011, 02:55 am
Muy buenas, ¿qué tal?

Tengo un problemilla, av er si alguien me puede echar una mano por favor.

En un JFrame tengo puesto un JPanel (llamemosle A) y un par de botones.
Cuando pulso en uno de esos botones cargo en el JPanel A otro JPanel (llamemósle B).

El caso es que no sé como hacer para que el JPanel A se redimensione automáticamente según el contenido del JPanel B, o si hubiera más paneles que se autoredimensionara según el contenido que tuviera.

Ahm JPanelA tiene puesto un Border Layout al centro.

Esto es lo que pongo para añadir un panel a otro.
Código
  1. jpanelA.removeAll();
  2. jpanelA.add(jpanelB);
  3.  

He probado con repaint() pero no va.

Muchas gracias  :laugh:.


Título: Re: Redimensionar tamaño JPanel dentro de otro JPanel
Publicado por: pisagatos en 21 Febrero 2011, 23:36 pm
Ya está solucionaado, había q modificar el JFrame padre también.

Dejo el código por si a alguien le hace falta:
Código
  1.    // Se le pasa el contenedor padre que almacenara al hijo, y el hijo que se le cargara
  2.    private void cargarPanel(JPanel contenedor, JPanel contenedorHijo)
  3.    {
  4.        // Se definen los tamanos iniciales de cada uno
  5.        final Dimension tamanoJFrameInicial = this.getSize(); // JFrame padre
  6.        final Dimension tamanoContenedorPrincipalInicial = contenedor.getPreferredSize().getSize(); // Contenedor que albergara al otro
  7.        final Dimension tamanoFormularioInicial = contenedorHijo.getPreferredSize().getSize(); // El hijo, el JPanel donde será puesto
  8.  
  9.        // Borramos cualquier cosa que pueda haber en el contenedor padre
  10.        contenedor.removeAll();
  11.  
  12.        // Tamano del contenedor que va a tener a los q se le meta
  13.        Dimension nuevoTamano = new Dimension(tamanoFormularioInicial.width, tamanoFormularioInicial.height); // Le ponemos el tamano de lo que albergara y la altura correspondiente
  14.        contenedor.setPreferredSize(nuevoTamano); // Se le asigna ese nuevo tamaño
  15.  
  16.        // Anadimos al contenedor el JPanel llamado al contenedor y lo ponemos visible (por defecto no son visibles, hay que ponerlos)
  17.        contenedor.add(contenedorHijo).setVisible(true);
  18.  
  19.        this.pack(); // Hacemos esto para que se reestructure el JFrame principal y autoajuste su tamano a lo que contiene dentro
  20.    }
  21.  

Gracias a todos!   ;)


Título: Re: Redimensionar tamaño JPanel dentro de otro JPanel [SOLUCIONADO]
Publicado por: Aeros en 22 Febrero 2011, 11:26 am
Gracias :D


Título: Re: Redimensionar tamaño JPanel dentro de otro JPanel [SOLUCIONADO]
Publicado por: Gianko en 11 Octubre 2012, 04:16 am
Hola segui el codigo anterior pero me produce este problema:
Me redimensiona el panel pero no me carga los componentes que tenia en el panelhijo.
Tengo un panel en la ventana principal sin ningún componente inicialmente, en la ventana principal tengo un botón que al presionarlo quiero que el panelpadre(el q está en la ventana principal) se reemplace por el panel hijo.
el panel hijo tiene unos botones y una tabla pero al ejecutar el codigo solo redimensiona el panel pero los componentes no aparecen