Hinzufügen zusätzlicher JPanels zu einem JPanel
Frage
Rather grundlegende Frage hier Jungs.
Im Grunde genommen habe ich Code wie folgt:
public SuperPanel() {
setLayout(new BorderLayout());
add(panel1(), BorderLayout.NORTH);
add(panel2(), BorderLayout.CENTER);
add(panel3(), BorderLayout.SOUTH);
}
Und das alles funktioniert gut und gut. Das Problem ist, dass ich einen anderen Teil möchte ich der Mitte hinzuzufügen. Nur mit add(newPanel(), BorderLayout.CENTER)
nicht funktioniert, offensichtlich. Aber Sie können JPanel
s in JPanel
s hinzufügen, richtig?
Also habe ich die folgende Änderung:
public SuperPanel() {
setLayout(new BorderLayout());
add(panel1(), BorderLayout.NORTH);
add(supersweetpanel(), BorderLayout.CENTER);
add(panel3(), BorderLayout.SOUTH);
}
Mit supersweetpanel()
Wesen:
public JPanel supersweetpanel() {
JPanel sswp = new JPanel();
setLayout(new BorderLayout());
add(panel2(), BorderLayout.NORTH);
return sswp;
}
Jetzt überschreibt es panel1
! Wenn ich es auf etwas anderes gesetzt (CENTER
, SOUTH
, was Sie haben), die ersten beiden Platten verschwinden vollständig. Hilfe wird sehr geschätzt.
Lösung
SuperPanel
ist wahrscheinlich eine Unterklasse von JPanel
, nicht wahr? Sie sind panel2
zu this
versehentlich Zugabe (die SuperPanel
), nicht sswp
. Versuchen Sie:
public JPanel supersweetpanel() {
JPanel sswp = new JPanel();
sswp.setLayout(new BorderLayout());
sswp.add(panel2(), BorderLayout.NORTH);
return sswp;
}