将其他JPanel添加到JPanel

时间:2009-05-26 22:38:02

标签: java swing jpanel

这里有个基本问题。

基本上我有这样的代码:

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!如果我将其设置为其他任何内容(CENTERSOUTH,你有什么),前两个面板完全消失。非常感谢帮助。

1 个答案:

答案 0 :(得分:13)

SuperPanel可能是JPanel的子类,对吧?您不小心将panel2添加到thisSuperPanel),而不是sswp。尝试:

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