将其他JPanel添加到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 ,你有什么),前两个面板完全消失。 非常感谢帮助。

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

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