2012-06-16 2 views
0

다른 JPanel (B)을 포함하는 JPanel (A)가 있습니다. 각 패널은 MouseMotionListener 및 MouseListener를 구현합니다. 드래그 할 때 안쪽/위쪽 패널 (B)만이이 이벤트에 응답합니다. 그래서 A에서 MouseMotionListener를 제거하고 B에서 MouseListener를 제거했습니다. 두 번째 테스트에서는 A가 커서가 B 외부에있는 경우에만 응답합니다.동일한 이벤트 수신기가있는 누적 구성 요소

두 패널이 동일한 수신기에 반응하는 솔루션이 있습니까? 각 이벤트의 getX() - 메서드가 필요합니다. 각 패널은 드래그 이벤트에서 다른 x 값을 반환해야합니다. 따라서 이벤트 전달은 제 경우에는 해결책이되지 못합니다.

많은 감사 ...

답변

1

내가 그 스윙 (부모에 전송되지 않습니다 하나 개의 요소에 이벤트를 의미) 이벤트 버블 링에 대한 지원을 제공합니다 생각하지 않습니다. 이에 대한 해결 방법은 부모 객체를 자식에게 전달하고 자식에서 이벤트가 발생할 때 직접 이벤트 핸들러를 호출하는 것입니다 (좋지는 않지만 작동합니다).

+2

그러나 Mouse 이벤트의 위치가 상위의 좌표계를 기준으로 포함되도록 MouseEvent 객체의 매개 변수를 변경해야합니다. –

관련 문제