Redimensionar tamaño JPanel dentro de otro JPanel [SOLUCIONADO]

Iniciado por pisagatos, 21 Febrero 2011, 02:55 AM

0 Miembros y 1 Visitante están viendo este tema.

pisagatos

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 (java) [Seleccionar]

jpanelA.removeAll();
jpanelA.add(jpanelB);


He probado con repaint() pero no va.

Muchas gracias  :laugh:.

pisagatos

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 (java) [Seleccionar]

    // Se le pasa el contenedor padre que almacenara al hijo, y el hijo que se le cargara
    private void cargarPanel(JPanel contenedor, JPanel contenedorHijo)
    {
        // Se definen los tamanos iniciales de cada uno
        final Dimension tamanoJFrameInicial = this.getSize(); // JFrame padre
        final Dimension tamanoContenedorPrincipalInicial = contenedor.getPreferredSize().getSize(); // Contenedor que albergara al otro
        final Dimension tamanoFormularioInicial = contenedorHijo.getPreferredSize().getSize(); // El hijo, el JPanel donde será puesto

        // Borramos cualquier cosa que pueda haber en el contenedor padre
        contenedor.removeAll();

        // Tamano del contenedor que va a tener a los q se le meta
        Dimension nuevoTamano = new Dimension(tamanoFormularioInicial.width, tamanoFormularioInicial.height); // Le ponemos el tamano de lo que albergara y la altura correspondiente
        contenedor.setPreferredSize(nuevoTamano); // Se le asigna ese nuevo tamaño

        // Anadimos al contenedor el JPanel llamado al contenedor y lo ponemos visible (por defecto no son visibles, hay que ponerlos)
        contenedor.add(contenedorHijo).setVisible(true);

        this.pack(); // Hacemos esto para que se reestructure el JFrame principal y autoajuste su tamano a lo que contiene dentro
    }


Gracias a todos!   ;)


Gianko

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