2014-11-07 2 views
-1

내 응용 프로그램에 화면이 있습니다. 첨부 된 이미지 파일에 화면의 레이아웃이 표시됩니다. enter image description hereJava Swing에서 패널을 중첩하는 방법은 무엇입니까?

Panel1111에 5 개의 레이블을 추가해야합니다. 내가 에 Panel1111Panel11 크기를 조절하고 Panel12 변화를 레이블을 추가 할 때, 아래 Panel11에 공간을 제공합니다.

Panel12에서 Panel1111의 내용을 겹치기를 원합니다.

어떻게하면됩니까?

레이아웃 세부 정보 :

  1. 에 Panel1 : BorderLayout를
  2. Panel11 : OverlayLayout에
  3. Panel111 : JLayeredPane를 사용 GridBagLayout에
+0

꾸밈없는 JDialog 또는 JWindow를 사용하는 대신 – mKorbel

+1

으로 귀찮게합니다. Panel11은 다소 중복되어 있지 않습니까? Panel11을 제거하면 어떻게됩니까? –

+1

* "하지만, 시도 할 때 .."* 더 나은 도움을 받으려면 [MCVE] (http://stackoverflow.com/help/mcve)를 게시하십시오 (최소한의 완전한 검증 가능한 예). –

답변

1

Java 레이아웃 관리자는 기본적으로 그 안에있는 모든 정보를 표시하려고합니다. 두 개의 패널이 겹치 길 원한다면, 이는 기본적으로 아래쪽 패널이 완전히 보이지 않고 숨겨진/겹쳐진 부분과 상호 작용하지 않는다는 것을 의미합니다. 그러면이 부분의 패널은 더 이상 이해가되지 않습니다. 따라서 GUI를 재고해야합니다.

특정 시간에만 겹쳐지기를 원할 경우 사용자가 겹칠 때와 그렇지 않을 때를 정의 할 수 있으면 레이아웃 관리자를 사용하지 않고 수동으로 처리해야하지만 직접 요소를 배치해야합니다 . 오라클은이를위한 몇 가지 힌트를 제공합니다 : http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html. 결국, 사용자 정의 레이아웃 관리자를 작성하여 패널의 크기 조정을 처리하게 될 수도 있습니다.

참고 : 패널 1의 레이아웃 만 수동으로 관리해야합니다. 다른 패널은 LayoutManager에 의해 다시 처리 될 가능성이 있습니다.

관련 문제