2012-10-03 62 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

相关问题