1

我已经添加MouseMotionListener到组件中,上面大约有​​ 5 个父母。当我设置 mainJWindow setVisible(true);时,立即mouseMoved(MouseEvent e)方法会生成一个事件。之后一切正常。会不会是什么bug?

一些解决方案是可能的:

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();。鼠标,当然就位,我不碰它:) 但它仍然会产生一个事件..

4

1 回答 1

0

终于找到了原因 - 在设置为可见之前,我正在调度MouseEvent( MouseEvent.MOUSE_ENTERED) 到Component MouseListener- 这是一个错误。但有趣的是,调度这个事件也触发了mouseMoved

于 2013-08-31T17:03:48.800 回答