日期:2014-05-20  浏览次数:20764 次

无法去掉MouseMotionListener这个事件
removeMouseMotionListener(mouseMotion);
我只在特定时间在需要鼠标移动事件。
不知道为什么总是无法把它移除掉。

------解决方案--------------------
可以设一个boolean变量啊 , 当变量为true的时候执行鼠标移动事件,当 变量为 false 的时候不执行 。这样就不用移出 这个事件了

至于为什么移出不了,只靠你给的这些资料没办法判断。不过我有碰到过这么一种情况,就是这个鼠标事件删掉了,但是接着在某个地方把接收鼠标事件的这个对象也删掉了 。然后重新 new 了一个这个对象,这时候无形中, 鼠标事件又添加进去了 。。 你可以查一下是否有这种情况。。。。
------解决方案--------------------
在 awt 或 swing 上

添加2个变量 X,Y
添加 鼠标 什么进入啊,那些事件 
获得鼠标 X Y getX() getY() 

然后在paint()方法中
方法中g.drawString(x+10,y+10,"x="+x+"y="+y)

------解决方案--------------------
探讨
楼上大哥,如何知道窗体左边缘的位置????
也就是说e.getX()是组件在窗体的绝对位置。
鼠标的.getLocaion是鼠标在windows屏幕内的绝对位置。
那么必须知道窗体的位置,如何获得呢???

------解决方案--------------------
探讨
引用:
楼上大哥,如何知道窗体左边缘的位置????
也就是说e.getX()是组件在窗体的绝对位置。
鼠标的.getLocaion是鼠标在windows屏幕内的绝对位置。
那么必须知道窗体的位置,如何获得呢???


看下api中
javax.swing.SwingUtilities
一个方法
static MouseEvent convertMouseEvent(Component source, MouseEvent sourceEvent, Component destination)