这里有个基本问题。
基本上我有这样的代码:
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
,你有什么),前两个面板完全消失。非常感谢帮助。
答案 0 :(得分:13)
SuperPanel
可能是JPanel
的子类,对吧?您不小心将panel2
添加到this
(SuperPanel
),而不是sswp
。尝试:
public JPanel supersweetpanel() {
JPanel sswp = new JPanel();
sswp.setLayout(new BorderLayout());
sswp.add(panel2(), BorderLayout.NORTH);
return sswp;
}