1

MouseMotionListener上記の約5つの親をコンポーネントに追加しました。main を設定するJWindow setVisible(true);と、すぐにmouseMoved(MouseEvent e)メソッドが 1 つのイベントを生成します。その後、すべて正常に動作します。それは何かのバグでしょうか?

いくつかの解決策が可能です:

public class SomeClass extends Component{

   private int mouseMoveCount;

   public SomeClass(){

   addMouseMotionListener(new MouseMotionAdapter() {
                @Override
                public void mouseMoved(MouseEvent e) {

                    if (mouseMoveCount > 1) {
                        //Do something
                        mouseMoveCount = 0;
                    }
                    mouseMoveCount++;
                }
            });
    }
}

jWindow.setVisible(true);validate();と の後に行われpack();ます。もちろん、マウスは所定の位置に座っています。私はそれに触れません:)しかし、それでも1つのイベントが生成されます..

4

1 に答える 1

0

最終的に理由を見つけました - 見えるように設定する前に、私はMouseEvent( MouseEvent.MOUSE_ENTERED)にディスパッチしComponent MouseListenerていました - それは間違いでした。しかし興味深いのは、このイベントをディスパッチするとmouseMoved.

于 2013-08-31T17:03:48.800 に答える