我希望相对于框架获得鼠标位置。
MouseInfo为我提供绝对位置。
如何相对于框架获得poisition? tahnks。
答案 0 :(得分:1)
使用getLocationOnScreen()获取帧的绝对位置,然后计算相对距离。
答案 1 :(得分: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
}
答案 2 :(得分:1)
要计算鼠标相对于框架的位置,您必须从框架的位置中减去鼠标的绝对位置 >,从而取消从画框左上角到画面左上角的无关点。
将鼠标相对于框架的位置设为点:
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