如何在每一帧上相对于JPanel获取鼠标位置

时间:2017-05-16 12:10:38

标签: java swing

现在我正在做这个

mouseX = MouseInfo.getPointerInfo().getLocation().x;

但如果我移动JFrame,这不再起作用。

每次移动鼠标时我都需要鼠标位置,因为我想在游戏中拖动鼠标,因此鼠标事件无法正常工作。

如何每帧都获得相对于JPanel的鼠标位置?

编辑1:好的,我已经弄明白了。我将鼠标位置减去屏幕上的jframe位置然后我在jpanel上获得鼠标位置

1 个答案:

答案 0 :(得分:2)

问题是"如何在每个帧上获得相对于JPanel的鼠标位置"。

我从中获取每个帧都不一定有鼠标事件,所以你必须轮询鼠标位置(相对于屏幕),并计算相对位置(相对于你的JPanel)。

总而言之,它让我觉得你想要这个:

Point p = MouseInfo.getPointerInfo().getLocation();
SwingUtilities.convertPointFromScreen(p, yourJPanel);
// Then use 'p', which was modified by method call above
相关问题