フレームに関連してマウスポインタの場所を取得する方法
-
12-12-2019 - |
質問
フレームに対してマウスの場所を取得したいです。
MouseInfo絶対位置を教えてください。
フレームに対する毒を得る方法?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
}
. フレームに対するマウスの位置を計算するには、フレームの場所からマウスの絶対位置を差し引かなければなりません。これにより、フレームの左上隅から画面の左上隅までの無関係な点をキャンセルする。
点:
としてフレームをフレームに対応させるための
.
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;
}
.
int としてyを取得するために:
public int getXRelativeTo() {
int y = frame.getY() - MouseInfo.getPointerInfo().getLocation().y;
return y;
}
.
私は助けたことを願っています。:)
詳細については、 http:// docs.oracle.com / javase / 7 / docs / api / java / aw / mooseinfo.html
所属していません StackOverflow