在Java中,如何找到自上次鼠标移动以来的时间?

时间:2012-12-07 15:59:04

标签: java swing awt mouseevent mousemotionevent

比如说,如果我在JFrame中画了一个圆圈,如果我将它悬停在它上面三秒钟,我想画它。

我有一个MouseMotionListener告诉我JFrame中光标的位置,但到目前为止就是这个。

public void mouseMoved(MouseEvent e)
{
  PointerInfo a = MouseInfo.getPointerInfo();
  cursorPos = a.getLocation();
  SwingUtilities.convertPointFromScreen(cursorPos, e.getComponent());
}

我对动作听众来说还是新手。如果我想测试鼠标是否移动,我应该添加什么?

另外,我只是好奇,为什么MouseEvent中的MOUSE_MOVED被认为是int?

1 个答案:

答案 0 :(得分:1)

向后回顾你的问题。

  

为什么MouseEvent中的MOUSE_MOVED被认为是int?

所有鼠标常量都是整数。这就是在1.5之前的Java中如何进行枚举。

  

如何找到鼠标上次移动后的时间?

在mouseMoved方法中,将当前时间保存在GUI模型中的某个位置。然后在GUI模型中编写一个返回空闲时间的方法。

idleTime = System.currentTimeMillis() - savedTimeinMillis.

您将空闲时间除以1000秒。