ラベルなどのコンポーネントの座標を取得しようとしています。getBoundsとgetLocationを試しましたが、ラベルが2つ以上のパネルにある場合、正確な座標が得られません。getLocationOnScreenの他に、コンポーネントが複数のパネルにある場合でも、正確なコンポーネントの座標を取得できる方法はありますか?
1478 次
3 に答える
6
JFrameとの相対的な関係が必要な場合は、次のようにする必要があります。
public static Point getPositionRelativeTo(Component root, Component comp) {
if (comp.equals(root)) { return new Point(0,0); }
Point pos = comp.getLocation();
Point parentOff = getPositionRelativeTo(root, comp.getParent());
return new Point(pos.x + parentOff.x, pos.y + parentOff.y);
}
または、組み込みのソリューションを使用することもできますSwingUtilities.convertPoint(comp, 0, 0, root)
。
于 2012-04-09T09:09:16.793 に答える
3
コンポーネントを試してください。getLocationOnScreen()
Javadocが言うように、
画面の座標空間でコンポーネントの左上隅を指定するポイントの形式で、このコンポーネントの位置を取得します。
于 2012-04-09T08:59:22.607 に答える
3
の代わりに、をgetLocationOnScreen()
使用できる場合がありgetXOnScreen()
ます。例です。getYOnScreen()
MouseEvent
Zoom
于 2012-04-09T09:06:59.230 に答える