0

我为我的程序设置了鼠标移动,当我从顶部、右侧或底部移出屏幕时,效果很好,但是无论出于何种原因,当我向左移出屏幕时,鼠标坐标会跳到右侧6 像素,向下 30 像素(总是完全相同的数量)。

然后,如果我继续向左移动鼠标(此时鼠标指针(鼠标光标图标的左上角)不在屏幕上,但鼠标光标图标的其余部分仍保留在屏幕上几个像素)它将把它移到左边,它在距离左边 3 个像素处。奇怪的是,当鼠标停止向左移动时,屏幕上仍然有鼠标光标图标的像素,所以导致这种现象的甚至不是完整的鼠标光标图标。

示例:如果我向屏幕左侧移动并在坐标 (0,500) 处离开屏幕,它将显示 (0,500),但是当我向左移动 1 个像素时,它会向右和向下跳显示(6,530),然后我继续向左移动,它将稳定在(3,530)。

我不确定是什么原因造成的,但我正在使用:

public class MouseManager implements MouseListener, MouseMotionListener {}

public void mouseMoved(MouseEvent e) {
    mouseX = e.getX();
    mouseY = e.getY();  
}

不确定它为什么这样做(并且仅在离开屏幕左侧时)。我正在尝试使用带有坐标的控制台日志以及在屏幕上绘制一个小矩形进行调试,并且两个测试都显示相同的结果。

4

0 回答 0