Java 如何存储鼠标位置?

Java 如何存储鼠标位置?,java,mouseevent,Java,Mouseevent,我试图写一个if语句,在鼠标静止时做一些事情。我正试图通过这一点来实现这一点 Point storedPosition = MouseInfo.getPointerInfo().getLocation(); if (storedPosition == currentMousePosition){ // do things when mouse is still } else { // do things when mouse is moving } 如果我能正确获得当前鼠标位置,我可以使

我试图写一个if语句,在鼠标静止时做一些事情。我正试图通过这一点来实现这一点

Point storedPosition = MouseInfo.getPointerInfo().getLocation();

if (storedPosition == currentMousePosition){
 // do things when mouse is still
} else {
 // do things when mouse is moving
}

如果我能正确获得当前鼠标位置,我可以使用什么点来获取当前鼠标位置?您正在尝试检查鼠标位置是否已从上次检查更改

private static void checkMouseLocation() {
    PointerInfo info = MouseInfo.getPointerInfo();
    // This can sometimes be null, so check for it (e.g. when Windows' UAC
    // screen is active)
    if (info == null) {
        return;
    }
    Point currentLocation = info.getLocation();

    if (lastLocation != null && !lastLocation.equals(currentLocation)) {
        lastMoved = System.currentTimeMillis();
        triggerActivity();
    }
    lastLocation = currentLocation;
}

不要对此进行轮询,而是因为您可能使用事件驱动的GUI库使用事件:

  • 启动与GUI兼容的计时器,如Swing计时器(如果这是Swing GUI)
  • 使用某种类型的鼠标监听器(如果是Swing,则使用MouseMotionListener),在监听器中,如果计时器记录了鼠标移动,则停止计时器并重新启动它

您可以监听来自操作系统的鼠标移动事件。 可以帮助您注册侦听器。 就是这样一个例子。
在这种监听器的主体中,您可以触发鼠标移动/拖动时所需的任何代码

什么意思
鼠标仍然
?当鼠标不移动/保持静止时,使用鼠标监听器(或类似结构,取决于您的GUI库)和GUI兼容计时器,如Swing GUI的Swing计时器。每当触发鼠标侦听器(或MouseMotionListener,如果是Swing)时,重新启动计时器。