Добавление дополнительных JPanels к JPanel - PullRequest
6 голосов
/ 27 мая 2009

Скорее основной вопрос, ребята.

В основном у меня есть такой код:

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

И все это хорошо работает. Проблема в том, что у меня есть еще одна часть, которую я хочу добавить в центр. Очевидно, что использование add(newPanel(), BorderLayout.CENTER) не работает. Но вы можете добавить JPanel с JPanel с, правильно?

Итак, я сделал следующее изменение:

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

С supersweetpanel():

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

Теперь он переопределяет panel1! Если я установлю его на что-нибудь еще (CENTER, SOUTH, что у вас), первые две панели полностью исчезнут. Помощь очень ценится.

1 Ответ

13 голосов
/ 27 мая 2009

SuperPanel скорее всего подкласс JPanel, верно? Вы случайно добавляете panel2 к this (SuperPanel), а не sswp. Попробуйте:

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