문제

오히려 기본적인 질문들.

기본적으로 다음과 같은 코드가 있습니다.

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

그리고 모든 것이 잘 작동합니다. 문제는 센터에 추가하고 싶은 또 다른 부분이 있다는 것입니다. 그냥 사용합니다 add(newPanel(), BorderLayout.CENTER) 분명히 작동하지 않습니다. 그러나 추가 할 수 있습니다 JPanels in 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! 내가 다른 것으로 설정하면 (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;
    }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top