Swing的MouseDrag(),MouseMoved()没有被调用问题
2013-08-09 08:34
337 查看
MouseDrag()与MouseMoved()没有被调用是因为添加的监听器有问题
下面就这个问题进行说明:
这里监听器为MouseAdpter的子类
使用addMouseMotionListener()时
MouseAdpter.MouseDraged()与MouseAdpter.MouseMoved()会被调用。
移动时-------------调用MouseMoved()
按住鼠标左键+移动-------调用MouseDraged()
下面全面说明一下MouseAdpter各个方法。
当使用addMouseListener()方法添加MouseAdpter时有效
mouseClicked(MouseEvent e)
mouseEntered(MouseEvent e) --------当鼠标进入(添加了监听器的)组件时调用,包括子组件
mouseExited(MouseEvent e) ----------当鼠标离开(添加了监听器的)组件时调用,包括子组件
mousePressed(MouseEvent e)
mouseReleased(MouseEvent e)
当使用addMouseMotionListener()方法添加MouseAdapter时有效
mouseDragged(MouseEvent e)
mouseMoved(MouseEvent e)
当使用addMouseWheelListener()方法添加MouseAdapter时有效(针对鼠标滑轮)
mouseWheelMoved(MouseWheelEvent e)
--------------------------------------------------------
MouseEvent的有用方法:
getX(),getY()----------------获取鼠标当前的位置
getModifies()--------------获取鼠标的左键或键盘点击
getClickCount()-----------获取鼠标点击的次数
getSource()---------------获取产生事件的事件源返回Object。
以下是测试代码:
下面就这个问题进行说明:
这里监听器为MouseAdpter的子类
使用addMouseMotionListener()时
MouseAdpter.MouseDraged()与MouseAdpter.MouseMoved()会被调用。
移动时-------------调用MouseMoved()
按住鼠标左键+移动-------调用MouseDraged()
下面全面说明一下MouseAdpter各个方法。
当使用addMouseListener()方法添加MouseAdpter时有效
mouseClicked(MouseEvent e)
mouseEntered(MouseEvent e) --------当鼠标进入(添加了监听器的)组件时调用,包括子组件
mouseExited(MouseEvent e) ----------当鼠标离开(添加了监听器的)组件时调用,包括子组件
mousePressed(MouseEvent e)
mouseReleased(MouseEvent e)
当使用addMouseMotionListener()方法添加MouseAdapter时有效
mouseDragged(MouseEvent e)
mouseMoved(MouseEvent e)
当使用addMouseWheelListener()方法添加MouseAdapter时有效(针对鼠标滑轮)
mouseWheelMoved(MouseWheelEvent e)
--------------------------------------------------------
MouseEvent的有用方法:
getX(),getY()----------------获取鼠标当前的位置
getModifies()--------------获取鼠标的左键或键盘点击
getClickCount()-----------获取鼠标点击的次数
getSource()---------------获取产生事件的事件源返回Object。
以下是测试代码:
class DnDAdapter extends MouseAdapter { @Override public void mouseWheelMoved(MouseWheelEvent e) { // TODO Auto-generated method stub super.mouseWheelMoved(e); } @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub System.out.print("Clicked:"); System.out.println("("+e.getX()+","+e.getY()+")"); super.mouseClicked(e); } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub System.out.print("Entered:"); System.out.println("("+e.getX()+","+e.getY()+")"); super.mouseEntered(e); } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub System.out.print("Exited:"); System.out.println("("+e.getX()+","+e.getY()+")"); super.mouseExited(e); } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub System.out.print("Pressed:"); System.out.println("("+e.getX()+","+e.getY()+")"); super.mousePressed(e); } @Override public void mouseReleased(MouseEvent e) { System.out.print("Released:"); System.out.println("("+e.getX()+","+e.getY()+")"); super.mouseReleased(e); } public void mouseDragged(MouseEvent e) { System.out.println("("+e.getX()+","+e.getY()+")"); super.mouseDragged(e); } @Override public void mouseMoved(MouseEvent e) { // TODO Auto-generated method stub //System.out.println("("+e.getX()+","+e.getY()+")"); super.mouseMoved(e); } }
相关文章推荐
- [iOS] performSelector:withObject:afterDelay:调用没有作用的问题及解决方法
- WKWebView调用window.open(url,"_blank”);没有反应的问题
- 解决H5播放视频黑屏只有声音没有图像的问题,Java调用ffmpeg转码成h264的mp4格式
- 关于函数字符数组调用的问题(没有搞清指针的概念)
- 第三篇:VS2012中,调用opencv库,在程序中定义了变量,编译没有问题,运行时会报错“变量使用没有定义”
- Fragment的public void onAttach(Context context) 没有被调用的问题
- 解决WCF调用多次之后没有响应的问题 转
- 编译类【COCOS2DX-LUA 脚本开发之十四】解决自定义CPP类通过TOLUA++ BINDING LUACOCOS2D后编译到ANDROID运行黑屏(没有调用自定义CPP类)的问题!
- java没有打印异常调用堆栈的问题
- 关于wxpython或者wxwidgets中EVT_PAINT没有被调用问题
- Java笔记---Swing 编程中添加组件没有立即显示的问题
- 解决AJAX返回状态200没有调用success的问题
- Winform 调用WCF客户端,所有服务端方法在运行的时候均找不到(编译没有问题)
- 【COCOS2DX-LUA 脚本开发之十四】解决自定义CPP类通过TOLUA++ BINDING LUACOCOS2D后编译到ANDROID运行黑屏(没有调用自定义CPP类)的问题!
- 【COCOS2DX-LUA 脚本开发之十四】解决自定义cpp类通过tolua++ binding LuaCocos2d后编译到Android运行黑屏(没有调用自定义cpp类)的问题!
- AVR/Atmel Studio延时函数没有被调用的问题
- 【万万没想到】关于文本组件调用selectAll(),没有全选文本的问题
- Winform 调用WCF客户端,所有服务端方法在运行的时候均找不到(编译没有问题)
- 【COCOS2DX-LUA 脚本开发之十四】解决自定义CPP类通过TOLUA++ BINDING LUACOCOS2D后编译到ANDROID运行黑屏(没有调用自定义CPP类)的问题!
- 代理 -> 在viewController,没有初始化时,有调用代理方法,解决崩溃问题