相反基本问题这里人

基本上我有这样的代码:

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

和所有的工作都很好。问题是,我有另一部分我想添加到中心。刚开始使用的 add(newPanel(), BorderLayout.CENTER) 不工作,效果显着。但是你可以在JPanels添加JPanels,是否正确?

因此,我提出了以下改变:

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,你有什么),前两个板完全消失。帮助是非常赞赏。

有帮助吗?

解决方案

SuperPanel可能JPanel的一个子类,是吗?你不小心添加panel2this(在SuperPanel),不sswp。尝试:

public JPanel supersweetpanel() {
        JPanel sswp = new JPanel();
        sswp.setLayout(new BorderLayout());
        sswp.add(panel2(), BorderLayout.NORTH);
        return sswp;
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top