0

例如,如果我在 JFrame 中绘制了一个圆圈,并且如果我将鼠标悬停在它上面三秒钟,我想在它上面绘画。

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

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

我对动作监听器还是很陌生。如果我想测试鼠标是否动,我应该添加什么?

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

4

1 回答 1

1

回顾你的问题。

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

所有鼠标常量都是整数。这就是Java 1.5 之前的枚举方式。

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

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

idleTime = System.currentTimeMillis() - savedTimeinMillis.

您将空闲时间除以 1000 秒。

于 2012-12-07T18:08:43.073 回答