В 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 за секунды.

Другие вопросы по тегам