mouseDragged() イベントを受け取る実際のコンポーネントは、「タイムライン」のどの部分ですか? 通常、このイベントを受け取ると、ドラッグ アクションに合わせてコンポーネントを移動します。この方法では、コンポーネントは常にマウスの下にあり、離すまで常に mouseDragged() イベントを受け取る必要があります。イベントを処理するときにこのコンポーネントを移動しますか? スライダーとして使用される小さなボタンのような長方形は、使用するのに優れたコンポーネントになります。
(タイムライン全体をコンポーネントとして扱い、一致するように移動しない場合、ユーザーが外でマウスをドラッグするとどうなりますか?)
Windows (およびおそらく他のもの) はマウスのキャプチャをサポートしていますが、Java はサポートしていないようです。次のようなカスタム イベント キューを提供できる場合があります。
Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener()
{
public void eventDispatched(AWTEvent e)
{
// Look for mouse messages and handle them...
}
}
, AWTEvent.MOUSE_MOTION_EVENT_MASK + AWTEvent.MOUSE_EVENT_MASK);