gpt4 book ai didi

java - 为什么当组件设置为可见时,MouseMotionListener 的 mouseMoved 方法会生成事件?

转载 作者:行者123 更新时间:2023-12-01 04:25:34 25 4
gpt4 key购买 nike

我已经将MouseMotionListener添加到组件中,上面大约有​​5个父组件。当我设置 main JWindow 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(); 之后完成。鼠标当然坐在原位,我没有碰它:)但它仍然会生成一个事件..

最佳答案

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

关于java - 为什么当组件设置为可见时,MouseMotionListener 的 mouseMoved 方法会生成事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18542857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com