现在我正在做这个
mouseX = MouseInfo.getPointerInfo().getLocation().x;
Run Code Online (Sandbox Code Playgroud)
但是如果我移动 JFrame,这将不再起作用。
另外,每次移动鼠标时我都需要鼠标位置,因为我想在游戏中拖动东西,因此鼠标事件不起作用。
如何获取每帧相对于 JPanel 的鼠标位置?
编辑1:好的,我已经想通了。我将鼠标位置减去屏幕上的 jframe 位置,然后在 jpanel 上获得鼠标位置
问题是“如何在每一帧上获取鼠标相对于 JPanel 的位置”。
我从中得出,您不一定每帧都有鼠标事件,因此您必须轮询鼠标位置(相对于屏幕),并计算相对位置(相对于您的 JPanel)。
总而言之,这让我觉得你想要这个:
Point p = MouseInfo.getPointerInfo().getLocation();
SwingUtilities.convertPointFromScreen(p, yourJPanel);
// Then use 'p', which was modified by method call above
Run Code Online (Sandbox Code Playgroud)