如果只希望用户能够点击按钮或菜单,那幺就不需要显式地处理鼠标事件。鼠标操作将由用户界面中的各种组件内部处理。然而,如果希望用户使用鼠标画图,就需要补货鼠标移动点击和拖动事件。
当用户点击鼠标按钮时,将会调用三个监听器方法:鼠标第一次被按下时调用mousepressed;鼠标被释放时调用mousereleased;最后调用mouseclicked。如果只对最终的点击事件感兴趣,就可以忽略前两个方法。用mouseevent类对象作为参数,调用getX和gety方法可以获得鼠标被按下时鼠标指针所在的x和y坐标。要想区分单击,双击和三击,需要使用getclickcount方法。
有些用户界面设计者喜欢让用户采用鼠标点击与键盘修饰符组合(例如,control+shift+click)的方式进行操作。我们感觉这并不是一种值得赞许的方式。如果对此持有不同的观点,可以看一看同时检测鼠标按键和键盘修饰符所带来的混乱。
需要注意,在Windows环境下,使用BUTTON3_DOWN_MASK检测鼠标右键(非主要的)状态。
当鼠标在窗口上移动时,窗口将会收到一连串的鼠标移动事件。请注意:有两个独立的接口mouseListener和mouseMotionListener。这样做有利于提高效率。当用户移动鼠标时,只关心鼠标点击(clicks)的监听器就不会被多余的鼠标移动(moves)所困扰。