2013-08-01 2 views
2

JLayers 인스턴스를 스택하여 서로 계층화 된 효과를 얻으려고했지만 그런 식으로 작동하지 않는 것 같습니다. 하나의 JPanel을 장식하고 여러 개의 효과가 여러 개의 LayerUI<JPanel> 클래스로 구현되어 있습니다.JLayer 클래스 스태킹 (JPanel에)

예를

new JLayer의 인수가 같은 JPanel 인스턴스
frame.add(new JLayer<>(panel, new LayerUI<> ...)); 
frame.add(new JLayer<>(panel, new LayerUI<> ...)); 

를 들어

하지만 LayerUI 인스턴스는 다른 일을.

마지막으로 추가 된 것 같습니다. 그들은 모두 paint 메서드의 컨텍스트에 직접 그립니다.

내가 그것을 자바 1.7의 새로운 이후 JLayer에 익숙하지 않다 오라클 '튜토리얼

+0

동일한 UI 요소 (이 경우 패널)를 동일한 UI 계층 구조에서 두 번 이상 사용할 수 없습니다. 더 나은 도움을 위해 –

+0

[SSCCE] (http://sscce.org /), short, runnable, compilable – mKorbel

+0

게시 된 지 몇 년이 지났지 만, 이에 대한 해답에 관심이 있습니다. 나는 몇 시간 동안 JPanel/JComponent에 여러 가지 장식을 추가 할 수있는 깨끗한 방법을 찾아 보았습니다. –

답변

0

에 대한 here 참조하십시오.

그러나 BufferedImage 및 z 레벨이 포함 된 고유 한 Layer 클래스를 작성할 수 있습니다.

그리기 방법은 목록 또는 레이어 맵을 통과하여 z 레벨 순서로 JPanel에 그립니다.