В Java, как найти время с момента перемещения последней мыши?
Скажем, например, если у меня нарисован круг в JFrame, и я хочу закрасить его, если наведу на него курсор на три секунды.
У меня есть MouseMotionListener, который говорит мне точку курсора в JFrame, но пока это все.
public void mouseMoved(MouseEvent e)
{
PointerInfo a = MouseInfo.getPointerInfo();
cursorPos = a.getLocation();
SwingUtilities.convertPointFromScreen(cursorPos, e.getComponent());
}
Я все еще новичок в действии слушателей. Что мне добавить, если я хочу проверить, не движется ли мышь?
Кроме того, мне просто любопытно, почему MOUSE_MOVED в MouseEvent считается int?
1 ответ
Возвращаясь к вашим вопросам.
Почему MOUSE_MOVED в MouseEvent считается int?
Все константы мыши являются целыми числами. Вот как перечисление было сделано в Java до версии 1.5.
Как узнать время с момента последнего перемещения мыши?
В вашем методе mouseMoved вы сохраняете текущее время где-то в вашей модели GUI. Затем вы пишете метод в вашей модели GUI, который возвращает время простоя.
idleTime = System.currentTimeMillis() - savedTimeinMillis.
Вы делите время простоя на 1000 за секунды.