如何获取相对于帧的鼠标指针位置

时间:2012-10-03 00:51:03

标签: java mouse-position

我希望相对于框架获得鼠标位置。

MouseInfo为我提供绝对位置。

如何相对于框架获得poisition? tahnks。

3 个答案:

答案 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