2012-10-03 61 views

回答

1

用getLocationOnScreen()獲取幀的絕對位置,然後計算相對距離。

+0

後,我明白,沒有內置的方法,可以幫助這一點 - 我自己做的。但無論如何感謝。 – iLoveC

1

首先,從當前範圍走了樹頂端(這將是該幀):

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

要計算的位置相對於框架的鼠標,必須從框架位置減去鼠標的絕對位置,從而取消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); 
} 

爲了得到X爲INT

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

相關問題