[英]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.