我正在尝试编写一个if语句,该语句在鼠标静止不动时会塞满东西。我正在尝试通过
Point storedPosition = MouseInfo.getPointerInfo().getLocation();
if (storedPosition == currentMousePosition){
// do things when mouse is still
} else {
// do things when mouse is moving
}
我可以使用哪个点来获取currentMousePosition
答案 0 :(得分:4)
如果我能够正确处理,则您正在尝试检查鼠标位置是否与上次检查相同。
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;
}
答案 1 :(得分:0)
不要轮询类似的东西,而是因为您可能使用事件驱动的GUI库,所以请使用事件:
答案 2 :(得分:0)
您可以侦听来自操作系统的鼠标移动事件。 JNativeHook library可以帮助您注册侦听器。 Here是此类侦听器的示例。 在此类侦听器的主体中,您可以触发鼠标移动/拖动时所需的任何代码