使用Eclipse开发swt,集成google的开发插件非常方便。
为控件增加鼠标事件的时候存在两个问题,1、事件响应的范围,当我在按钮上按下,但是移动鼠标到按钮之外抬起,如果不判断响应范围按键的事件照样触发,对于误点来说这就是BUG了;2、鼠标事件并没有对鼠标的哪一个按键进行封装,需要在监听方法里面判断鼠标按键类型;
针对响应范围,本来想使用鼠标事件自带的方法:
button_modelChoose.getBounds().contains(e.x, e.y)
但是发现没有效果,查看源码后决定改用:
if( e.x>=0 && e.x<button_modelChoose.getBounds().width
&& e.y>=0 && e.y<button_modelChoose.getBounds().height){
System.out.println("范围内");
}else{
System.out.println("范围外");
}
这样就能相对有效的控制鼠标按键响应的范围;
鼠标按键类型监听本来想采用SWT的常量,后来发现找不到具体设定,倒是对于鼠标的动作设定的很多常量,大概总结下
event.button==1 表示鼠标左键;
event.button==2 表示鼠标滚轮;
event.button==3 表示鼠标右键;
event.button==5 表示鼠标上翻页;
event.button==4 表示鼠标下翻页;
留个“案底”方便以后记不住再来看看 :)