2013-05-19 2 views
1

JPanels를 레이어해야하지만 어떻게해야할지 모르겠다. 나는 3 개의 패널을 가지고 있는데, 첫 번째는 배경을위한 것이고 두 번째는 Character/Sprite를 움직여서 첫 번째 패널을 배경으로하고 (배경, 세 번째는 버튼에 사용된다. 그들은 층) I 패널 1 패널 레이어 어떻게 2자바 레이어 JPanels

편집과 :.?. 배경은 각각의 아이콘 25x25 라벨의 격자로 구성되어

답변

2

일부 선택해

  • 정수 상수 z 순서를 사용하여 부품 수의 JLayeredPane 층을 사용한다. 이 작업을 수행 할 때 본질적으로 null 레이아웃을 사용하므로 JLayeredPane에 추가 된 모든 구성 요소의 크기와 위치 설정에 대한 책임은 전적으로 사용자에게 있습니다.
  • 배경이 모두 이미지를 페인트하는 경우 JPanel을 하나만 사용하고 이미지를 JPanel의 paintComponent 메서드에 표시되는 BufferedImage로 그릴 수 있습니다. 스프라이트도 페인트되지만 위치는 다양합니다.
1

How to Use Layered Panes를 참조

돈을.

panel.setOpaque(false); 

또는 다음을 사용하지 않아도됩니다. o 레이어 패널. 패널에 배경 이미지를 페인트하면됩니다. 이에 대한 예는 Background Panel을 참조하십시오.

0

방금 ​​전에 내 CSC 클래스의 하향식 비디오 게임을했습니다. 우리가 한 것은 JPanel의 paint() 메서드에서 배경을 그린 다음 모든 스프라이트를 그렸습니다. Timer와 ActionListener를 사용하여 JPanel을 지속적으로 업데이트했습니다.

+0

JPanel의'paint (...)'메소드의 그림 이외에 이것에 동의합니다. 이 메서드는 구성 요소, 테두리 및 자식을 페인팅하는 데 책임이 있으며, 후자의 두 가지 고려 사항 (테두리 및 자식)의 잘못된 그림을 망칠 위험을 감수하고 싶지 않으면 일반적으로 훨씬 더 좋습니다 JPanel의'paintComponent (Graphics g)'메쏘드로 페인팅하십시오. –