2009-03-31 4 views
0

내 프로젝트가 Java Swing에 있습니다.JPanel에있는 JPanel + 이미지에 부분적으로 다른 모양을 추가하는 방법

나는 중앙에 .png 확장자 (JLabels에 있음)가있는 이미지를 추가 할 JPanel을 가지고 있습니다.

이제 부분적으로 JPanel &에 해당 이미지가있는 라인을 추가하고 싶습니다. 현재 줄을 추가 할 때 JPanel이 줄을 표시하지만 이미지의 크기를 변경할 때 & 줄을 이미지로 끌면 이미지가 줄을 숨 깁니다.

이미지가 내 라인을 숨기지 않도록 할 수있는 일 & 이미지에 이미지가 표시됩니까?

+0

어떻게 그리 시나요? 관련성있는 코드 스 니펫을 제공 할 수 있습니까? 아니면 스크린 샷? –

답변

2

이미지를 직접 그리는 것이 좋으며 같은 컨트롤에서 맨 위에 선을 그릴 수도 있습니다. 캔버스를 확장하는 클래스를 만들고 페인트 메서드에서 이미지를 그리는 코드를 작성한 다음 선을 그립니다.

0

JXLayer을 사용하고 선을 그릴 사용자 지정 LayerUI를 정의 할 수 있습니다. 그런 다음 그려야 할 구성 요소 위에 나타납니다. 이것은 좀 더 고급이며 타사 (오픈 소스) 사용자 지정 구성 요소를 사용하는 것과 관련이 있지만 나중에 이미지를 렌더링하는 데 사용하는 Swing 구성 요소에 대해 마음을 바꿀 수 있습니다. this 기사가 당신이 원하는 것을 성취하는 방법을 가장 잘 묘사한다고 생각합니다.

저는 과거에 이와 비슷한 많은 문제를 다양한 방법으로 해결했으며 JXLayer의 유연성과 유지 관리 성은 없었습니다.

1

또 다른 옵션은 기본 컨테이너로 대신 JPanel의의의 JLayeredPane를 사용하고 상위 계층 사용 JLayeredPane.setLayer (yourPanel, highNumber)에 (setOpaque (false)의) 인 JPanel을 비 불투명를 배치하고 뭔가를 사용하여의 JLayeredPane를 채우는 것입니다 GridBagLayout 또는 간단한 사용자 정의 LayoutManager와 같습니다.

그러면 해당 패널에 사용자 정의 그림을 구현할 수 있습니다.

관련 문제