0

たとえば、JFrameに円を描いていて、その上に3秒間カーソルを合わせると、その上にペイントしたいとします。

JFrame内のカーソルのポイントを教えてくれるMouseMotionListenerがありますが、これまでのところそれだけです。

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 と見なされるのはなぜですか?

マウス定数はすべて int です。これが、バージョン 1.5 より前の Java で列挙が行われていた方法です。

マウスが最後に移動してからの時間を確認するにはどうすればよいですか?

mouseMoved メソッドでは、現在の時刻を GUI モデルのどこかに保存します。次に、アイドル時間を返すメソッドを GUI モデルに記述します。

idleTime = System.currentTimeMillis() - savedTimeinMillis.

アイドル時間を 1000 で割ります。

于 2012-12-07T18:08:43.073 に答える