我已将MouseMotionListener
添加到Component中,大约有5个以上的父母。当我设置主JWindow
setVisible(true);
时,mouseMoved(MouseEvent e)
方法立即生成一个事件。之后,一切正常。可能是一些错误吗?
一些解决方案是可能的:
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();
之后完成。鼠标当然就位,我没有触摸它:)但是它仍然会产生一个事件。 最佳答案
终于找到了原因-在设置为可见之前,我正在将MouseEvent
(MouseEvent.MOUSE_ENTERED
)分配给Component
MouseListener
-这是一个错误。但有趣的是,调度此事件也触发了mouseMoved
。