2011-12-04 4 views
1

드로잉 캔버스에 다른 모양을 그릴 수있는 프로그램을 만들고 있습니다. 클릭 한 후 모양을 선택하고 캔버스의 다른 지점으로 드래그/변환 할 수있는 버튼을 추가하고 싶습니다. 이것을 구현하는 기본 개념은 무엇입니까? 도형을 클릭하여 선택하면 어떻게 든 테두리가 추가되어 선택되었음을 나타냅니다.그림 패널에서 모양을 선택하는 방법은 무엇입니까?

좋아요, 나는 이것을 시도해 보았습니다. 저는 여러 모양을 선택할 수 있습니다. 테두리를 선택하면 모양을 둘러싼 모양이 나타나지 않습니다. 라디오 단추를 바꿔야 만 다른 모양이 나타납니다. 그런 다음 선택 항목이 나타납니다. 이 문제를 해결하는 방법을 모르겠습니다. 내가 여러 모양을 선택할 수있는 문제를 해결하기 위해 부울을 추가하려했지만 작동하지 않습니다. boolean isSelected는 원래 false로 설정됩니다. 테두리 색/너비가 마우스 클릭시 자동으로 나타나지 않는 이유를 모르겠습니다.

답변

1

이 전체 프로젝트를 작은 단계로 세분하고 개별적으로 그리고 개별적으로 해결하십시오. 먼저 여러 셰이프 중에서 셰이프를 선택하는 방법을 찾습니다. 일반적으로 MouseListener의 mousePressed 메서드에서 ArrayList에 내 Shapes를 잡고 목록을 반복하고 모양이 마우스의 Point 인 contains(...)인지 확인하여이 작업을 수행했습니다.

끌기의 경우 MouseAdapter를 확장하는 한 클래스에서 두 수신기를 결합 할 수있는 MouseMotionListener를 사용하고 mouseDragged 메서드에서 선택한 모양을 이동합니다.

+1

감사합니다. 나는 이것을 줄 것이다. – Susie

+0

@Susie : 천만에요. 이 단계들 중 어느 한 단계에 닥칠 경우 돌아 오십시오. –

+0

고맙습니다! 나는 조금 붙어 버렸다 ... 나는 정말로 이해하지 못하는 두 가지 문제가 일어나고있다. 모양이 내가 라디오 버튼을 변경하고 캔버스에 다른 것을 추가 할 때까지 그것이 선택되었다는 것을 보여주지는 않습니다. 그리고 부울이 추가 된 채로 하나 이상의 모양을 선택합니다. – Susie

관련 문제