java - 在 Java 中获取鼠标的精确坐标

标签 java user-interface swing

好吧,我知道该怎么做,但它正在做一些奇怪的事情。

我正在尝试获取正确的 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 黑客攻击情况的图片: enter image description here

最佳答案

我想知道你是否让这比需要的更难。弹出菜单将根据您传递给 show 方法 ( JPopupMenu API ) 的组件定位自己。你应该能够显示弹出菜单做这样的事情,以便让它显示在正确的位置:

popup.show(myJList, e.getX(), e.getY());

关于java - 在 Java 中获取鼠标的精确坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4882459/

相关文章:

java - 尝试制作 GUI,找不到显示的符号?

java - 我无法在字段中输入数据

java - 从 IntelliJ IDEA 中当前打开的文件运行单元测试

Java写入目录只会创建文件

java - 奇怪的 JFrame 行为

python - 如何在 PyQT 中分离 ui 和实现?

java - 字符串的最后一个子串

java - 如何缩小/减少android中按钮的点击区域?

java - 单击按钮时如何关闭框架

java - 为什么我无法将 JPanel 添加到 JFrame?