>  기사  >  Java  >  JFrame 내에서 패널을 동적으로 교환하는 방법은 무엇입니까?

JFrame 내에서 패널을 동적으로 교환하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-25 04:16:02877검색

How to Dynamically Swap Panels Within a JFrame?

JFrame 내에서 동적으로 패널 교체

이 Java Swing 애플리케이션에서 JFrame 내의 JPanel은 사용자 작업에 따라 다른 JPanel과 교체되어야 합니다. 이를 달성하기 위한 적절한 접근 방식을 탐색하면서 아래 코드를 테스트했습니다.

panel = new CustomJPanelWithComponentsOnIt();
parentFrameJPanelBelongsTo.pack();

그러나 이 접근 방식은 패널을 전환하는 데 실패했습니다.

해결책: CardLayout 활용

이 시나리오의 이상적인 솔루션은 여러 패널을 표시하면서 동시에 하나의 패널만 선택적으로 표시할 수 있는 레이아웃 관리자인 CardLayout을 활용하는 것입니다.

CardLayout을 구현하려면 다음 단계를 따르세요. 취할 수 있습니다:

  1. CardLayout 객체 생성:

    CardLayout cardLayout = new CardLayout();
  2. 패널을 담을 컨테이너의 레이아웃을 설정합니다(예: JFrame):

    parentFrameJPanelBelongsTo.setLayout(cardLayout);
  3. CardLayout의 제약 조건을 사용하여 컨테이너에 패널을 추가합니다.

    parentFrameJPanelBelongsTo.add(new CustomJPanelWithComponentsOnIt(), "panel1");
    parentFrameJPanelBelongsTo.add(new AnotherJPanel(), "panel2");
  4. 초기 패널을 다음으로 설정합니다. 표시:

    cardLayout.show(parentFrameJPanelBelongsTo, "panel1");
  5. 사용자 상호 작용에 따라 활성 패널을 동적으로 변경:

    cardLayout.show(parentFrameJPanelBelongsTo, "panel2");

위 내용은 JFrame 내에서 패널을 동적으로 교환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.