JPopupMenu オブジェクトがあります。その動作は座標に依存します。親コンテナに対する相対的な位置を取得するにはどうすればよいですか?
3 に答える
0
のメソッド (mouseReleased など)で、現在の位置を含むオブジェクトをMouseListener
受け取る必要があります。MouseEvent
これらの値を使用したくない場合は、Component#getLocation
メソッドを使用して試すことができます。それ以外の場合Component#getLocationOnScreen
は絶対位置を返しますが、相対位置を計算する必要があります。
于 2011-11-18T13:38:45.293 に答える
0
Component#getLocation
メソッドもメソッドも機能せずComponent#getLocationOnScreen
、フィールドdesiredLocationX
/desiredLocationY
にアクセスできないため、 JPopupMenu() を次のように拡張しました。
contextMenu = new JPopupMenu(){
private Point desiredLocation;
/**
* Override Component#getLocation, since it always returns 0,0.
*/
@Override
public Point getLocation() {
return desiredLocation;
}
@Override
public void show(Component invoker, int x, int y) {
desiredLocation = new Point(x, y);
super.show(invoker, x, y);
}
};
于 2018-07-10T13:09:48.137 に答える