2010-08-14 4 views
0

예를 들어 JScrollPanes가있는 JPanel 하위 클래스에 그림이 있고 사용자가 클릭하는 점을 캡처하려고한다고 가정합니다. 예를 들어 JPanel 내부의 드로잉 영역이 0에서 10000까지 진행되는 반면 화면 크기는 선험적으로 알려지지 않은 것으로 가정합니다. Click 이벤트의 마우스 좌표가 주어지면 실제로 0 - 10000 범위의 위치를 ​​결정할 수 있습니까? 예를 들어, 화면의 좌표는 이벤트에 따라 (300, 500)이지만 캔버스의 실제 위치는 (5890, 3200) 일 수 있습니다.Java : 사용자가 클릭 한 좌표가 주어진 JPanel에서 마우스의 절대 위치 가져 오기

답변

0

구성 요소에 전달 될 때 마우스 좌표가 구성 요소와 관련하여 주어 지므로 마우스를 클릭 한 시각적 부분 인 경우 JPanel에 5890,3200이 표시됩니다. 화면 좌표에서 변환해야하는 경우 JViewport을 사용하여 현재 뷰포트에 표시된 뷰의 좌표를 JViewport.getViewRect()을 통해 찾을 수 있습니다. 뷰포트는 JScrollPane.getViewport()을 통해 JScrollPane에서 가져옵니다.

+0

기다려라.하지만 jscrollpane 안에 jpanel을 넣어야한다. 그걸 망쳐 놓을 줄 알았는데? 나는 사실 거의 확신했다. 나는 그 때를 점검하고보고 할 것이다. –

+0

아, 네가 옳았다. 나는 scrollpane에 리스너를 추가하기 전에 생각하고 있었다고 생각합니까? 나는 몰라. 하지만 어쨌든 고마워. –