2011-03-11 7 views
0

이미지 목록이 JList에 표시되는 응용 프로그램을 만들고 있습니다. 각 이미지는 패널에 포함 된 상태로 표시됩니다. 사용자가 이미지 위로 커서를 이동하면 이미지가 다른 프레임에 확대 표시됩니다.MouseListener 이벤트가 Java에서 작동하지 않습니다.

이제 이벤트를 표시하는 각 패널에서 MouseListner 인터페이스를 구현했습니다. 각 패널에 mouseListner()를 추가했습니다.

이제 사용자가 패널을 클릭하거나 패널 안팎으로 이동할 때 이벤트가 발생하지 않습니다.

사실 내가 이미지를 클릭 할 때 실제로 패널에서가 아니라 JLabel을 클릭하고 있기 때문입니까?

다른 원인은 무엇입니까?

+3

SSCCE는이 문제를 해결하는 데 매우 유용합니다. – jzd

답변

1

사실 내가 이미지를 클릭 할 때 실제로 패널에서가 아니라 JLabel을 클릭하고 있기 때문입니까?

실제로 JList를 클릭합니다. 렌더러는 실제 구성 요소가 아닙니다.

JList에 MouseListener를 추가 한 다음 JList의 indexToLocation (...) 메소드를 사용하여 클릭 한 렌더링 된 항목을 결정해야합니다.

편집 :

가 실제로는해야한다로 locationToIndex (...) JList의 방법. 가끔 내 손가락이 내 마음이 생각하는 것을 입력하지 마십시오 :)

+0

클릭 한 항목에 대해 어떻게 알 수 있습니까 ?? –

+0

이미 사용해야하는 방법을 알려주었습니다. – camickr

+0

예. 나중에 추가 했어. 고맙습니다. –

0

마우스 이동 이벤트를 캡처하려면 MouseListener 대신 MouseMotionListener을 구현해야합니다.

+0

하지만 mouseExit 및 mouseEntered 함수는 MouseListner 인터페이스에 정의되어 있습니다. 마우스는 enterd 또는 right가 맞는지 확인하기위한 것입니다. –

+0

아니요, MouseMotionListener에 정의되어 있으며 mouseListener를 mouseListener가 아닌 구성 요소에 추가해야합니다. – jzd

+0

하지만 .. 작동하지 않습니다 ... –

관련 문제