이 Java Swing 애플리케이션에서 JFrame 내의 JPanel은 사용자 작업에 따라 다른 JPanel과 교체되어야 합니다. 이를 달성하기 위한 적절한 접근 방식을 탐색하면서 아래 코드를 테스트했습니다.
panel = new CustomJPanelWithComponentsOnIt(); parentFrameJPanelBelongsTo.pack();
그러나 이 접근 방식은 패널을 전환하는 데 실패했습니다.
해결책: CardLayout 활용
이 시나리오의 이상적인 솔루션은 여러 패널을 표시하면서 동시에 하나의 패널만 선택적으로 표시할 수 있는 레이아웃 관리자인 CardLayout을 활용하는 것입니다.
CardLayout을 구현하려면 다음 단계를 따르세요. 취할 수 있습니다:
CardLayout 객체 생성:
CardLayout cardLayout = new CardLayout();
패널을 담을 컨테이너의 레이아웃을 설정합니다(예: JFrame):
parentFrameJPanelBelongsTo.setLayout(cardLayout);
CardLayout의 제약 조건을 사용하여 컨테이너에 패널을 추가합니다.
parentFrameJPanelBelongsTo.add(new CustomJPanelWithComponentsOnIt(), "panel1"); parentFrameJPanelBelongsTo.add(new AnotherJPanel(), "panel2");
초기 패널을 다음으로 설정합니다. 표시:
cardLayout.show(parentFrameJPanelBelongsTo, "panel1");
사용자 상호 작용에 따라 활성 패널을 동적으로 변경:
cardLayout.show(parentFrameJPanelBelongsTo, "panel2");
위 내용은 JFrame 내에서 패널을 동적으로 교환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!