现在我正在做这个
mouseX = MouseInfo.getPointerInfo().getLocation().x;
但如果我移动JFrame,这不再起作用。
每次移动鼠标时我都需要鼠标位置,因为我想在游戏中拖动鼠标,因此鼠标事件无法正常工作。
如何每帧都获得相对于JPanel的鼠标位置?
编辑1:好的,我已经弄明白了。我将鼠标位置减去屏幕上的jframe位置然后我在jpanel上获得鼠标位置
答案 0 :(得分:2)
问题是"如何在每个帧上获得相对于JPanel的鼠标位置"。
我从中获取每个帧都不一定有鼠标事件,所以你必须轮询鼠标位置(相对于屏幕),并计算相对位置(相对于你的JPanel)。
总而言之,它让我觉得你想要这个:
Point p = MouseInfo.getPointerInfo().getLocation();
SwingUtilities.convertPointFromScreen(p, yourJPanel);
// Then use 'p', which was modified by method call above