문제

프레임에 상대적인 마우스 위치를 얻고 싶습니다.

MouseInfo는 절대 위치를줍니다.

프레임을 비교하여 poisition을 얻는 방법은 무엇입니까?tahnks.

도움이 되었습니까?

해결책

getLocationOnScreen ()을 사용하여 프레임의 절대 위치를 가져온 다음 상대 거리를 계산합니다.

다른 팁

첫째, 현재 범위에서 상단으로 트리를 걷다 (프레임이 될 것입니다) :

Container container = this.getParent();
Container previous = container;
while (container != null)
{
    previous = container;
    container = container.getParent();
}
.

이전 top container

if (previous instanceof JFrame)
{
    Point p = ((JFrame)previous).getMousePosition();
    System.out.println(p); // or do what you need to with p
}
.

프레임 에 비해 마우스 의 위치를 계산하려면 프레임의 위치에서 마우스의 절대 위치 을 빼야합니다 프레임의 왼쪽 상단 모서리에서 화면의 왼쪽 상단 모서리까지의 외부 지점을 취소합니다.

포인트 :

프레임과 상대적인 마우스의 위치를 얻으려면
public Point getLocationRelativeTo() {
    int x = frame.getX() - MouseInfo.getPointerInfo().getLocation().x;
    int y = frame.getY() - MouseInfo.getPointerInfo().getLocation().y;
    return new Point(x, y);
}
.

x를 int :

로 얻으려면
public int getXRelativeTo() {
    int x = frame.getX() - MouseInfo.getPointerInfo().getLocation().x;
    return x;
}
.

int :

를 가져 오려면
public int getXRelativeTo() {
    int y = frame.getY() - MouseInfo.getPointerInfo().getLocation().y;
    return y;
}
.

나는 도움이 되었기를 바랍니다.:)

자세한 정보는 http : // docs를 방문하십시오..oracle.com / javase / 7 / docs / api / java / awt / mouseinfo.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top