2012-10-03 3 views

답변

1

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

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

이전의 위치를 ​​계산하려면 상단 용기

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

를 방문 - 을 나 자신에 의해 그것을했다. 하지만 어쨌든 고마워. – iLoveC

1

첫째, (즉 프레임 예정) 상단에 현재 범위에서 트리를 걸어 마우스 프레임에 상대적인 경우,의 위치에서 마우스의 절대 위치 을 빼서 t를 취소해야합니다 그는 프레임의 왼쪽 상단 모서리에서 화면의 왼쪽 상단 모서리까지 관계없는 점을 지적합니다.

public Point getLocationRelativeTo() { 
    int x = frame.getX() - MouseInfo.getPointerInfo().getLocation().x; 
    int y = frame.getY() - MouseInfo.getPointerInfo().getLocation().y; 
    return new Point(x, y); 
} 

INT로 X를 얻으려면 :

public int getXRelativeTo() { 
    int x = frame.getX() - MouseInfo.getPointerInfo().getLocation().x; 
    return x; 
} 

로서 Y를 얻으려면

포인트 같이 프레임 마우스의 상대적 위치를 찾 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

0

은 다음과 같습니다

관련 문제