Test Foro de elhacker.net SMF 2.1

Programación => Programación General => 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 (java) [Seleccionar]

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


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 (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!   ;)
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