Pregunta

En lugar pregunta básica aquí chicos.

Básicamente tengo código como este:

public SuperPanel() {
    setLayout(new BorderLayout());
    add(panel1(), BorderLayout.NORTH);
    add(panel2(), BorderLayout.CENTER);
    add(panel3(), BorderLayout.SOUTH);
}

Y que todo funciona bien y bueno. El problema es que no tengo otra parte deseo añadir al centro. Sólo mediante add(newPanel(), BorderLayout.CENTER) no funciona, obviamente. Pero puede agregar JPanels en JPanels, correcto?

Así que hicieron los siguientes cambios:

public SuperPanel() {
    setLayout(new BorderLayout());
    add(panel1(), BorderLayout.NORTH);
    add(supersweetpanel(), BorderLayout.CENTER);
    add(panel3(), BorderLayout.SOUTH);
}

Con supersweetpanel() ser:

public JPanel supersweetpanel() {
    JPanel sswp = new JPanel();
    setLayout(new BorderLayout());
    add(panel2(), BorderLayout.NORTH);
    return sswp;
}

Ahora se anula panel1! Si lo fijo a cualquier otra cosa (CENTER, SOUTH, lo que tiene), los dos primeros paneles desaparecen por completo. Ayuda es muy apreciada.

¿Fue útil?

Solución

Es probable SuperPanel una subclase de JPanel, ¿verdad? Está añadiendo accidentalmente panel2 a this (el SuperPanel), no sswp. Proveedores:

public JPanel supersweetpanel() {
        JPanel sswp = new JPanel();
        sswp.setLayout(new BorderLayout());
        sswp.add(panel2(), BorderLayout.NORTH);
        return sswp;
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top