Bastante pregunta básica aquí chicos.Agregando JPanels adicionales a un JPanel
Básicamente tienen un código como éste:
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 tengo otra parte que deseo agregar al centro. Simplemente usando add(newPanel(), BorderLayout.CENTER)
no funciona, obviamente. Pero puede agregar JPanel
s en JPanel
s, ¿correcto?
Hice, pues, el siguiente cambio:
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 configuro para cualquier otra cosa (CENTER
, SOUTH
, ¿qué tiene?), Los dos primeros paneles desaparecen por completo. La ayuda es muy apreciada.
+1. Tiene que ser así, y da un buen ejemplo de por qué el uso de la herencia puede hacer que las cosas sean frágiles. – Eddie
Ah, eso fue exactamente. Encantador. –
Lo que dijo Eddie. Es una pena que la mayoría de los tutoriales Swing (y las GUI Swing) tengan un código tan malo. –