好吧,我知道该怎么做,但它正在做一些奇怪的事情。
我正在尝试获取正确的 X Y 坐标以显示 JMenu
。我找到了一种方法,但这只是一种技巧。所有右键单击都发生在 JList
上,现在直到我添加字符面板,假设您在左上角附近右键单击。您希望 Y 坐标约为 40~ 像素,Y 坐标约为 100~ 像素,对吗?因为您单击的是靠近左侧的 JList
所在的位置。错误的。当我希望它从整个应用程序的左上角开始计数时,xy 坐标从 JList
的左上角开始计数。 :S
那么,我做了什么?因为 Y 坐标是正确的,所以我向 X 坐标添加了 512 个像素,所以它总是在 JList 中。像这样:
int newMouseX = 512+e.getX();
popup.show(tileOffline.this, newMouseX, e.getY()); // show item at mouse
但是,如您所知,我不会永远在 JList
中右击。
我怎样才能从整个小程序中获得鼠标的精确 X Y 坐标?
这是一张描述没有 512 黑客攻击情况的图片:
最佳答案
我想知道你是否让这比需要的更难。弹出菜单将根据您传递给 show 方法 ( JPopupMenu API ) 的组件定位自己。你应该能够显示弹出菜单做这样的事情,以便让它显示在正确的位置:
popup.show(myJList, e.getX(), e.getY());
关于java - 在 Java 中获取鼠标的精确坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4882459/