문제
오히려 기본적인 질문들.
기본적으로 다음과 같은 코드가 있습니다.
public SuperPanel() {
setLayout(new BorderLayout());
add(panel1(), BorderLayout.NORTH);
add(panel2(), BorderLayout.CENTER);
add(panel3(), BorderLayout.SOUTH);
}
그리고 모든 것이 잘 작동합니다. 문제는 센터에 추가하고 싶은 또 다른 부분이 있다는 것입니다. 그냥 사용합니다 add(newPanel(), BorderLayout.CENTER)
분명히 작동하지 않습니다. 그러나 추가 할 수 있습니다 JPanel
s in JPanel
S, 맞습니까?
그래서 나는 다음과 같은 변화를했다.
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
, 당신은 무엇을 가지고 있는지), 처음 두 패널은 완전히 사라집니다. 도움을 주셔서 감사합니다.
해결책
SuperPanel
아마도 서브 클래스 일 것입니다 JPanel
, 오른쪽? 실수로 추가하고 있습니다 panel2
에게 this
(그만큼 SuperPanel
), 아니다 sswp
. 노력하다:
public JPanel supersweetpanel() {
JPanel sswp = new JPanel();
sswp.setLayout(new BorderLayout());
sswp.add(panel2(), BorderLayout.NORTH);
return sswp;
}
제휴하지 않습니다 StackOverflow