簡體   English   中英

如何獲取相對於幀的鼠標指針位置

[英]How to get mouse pointer location relative to frame

我想獲得相對於框架的鼠標位置。

MouseInfo給了我絕對的位置。

如何獲得相對於框架的poisition? tahnks。

使用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
}

為了計算鼠標相對於框架的位置,你必須從幀的位置減去鼠標的絕對位置 ,從而消除從框架到屏幕的左上角的左上角無關點。

要將鼠標相對於框架的位置作為Point獲取

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM