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 JPanels in JPanels 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.

War es hilfreich?

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;
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top