当鼠标移动到组件上时,mouseMotionListener是否会触发事件,而mouseListener只会在我按下按钮时触发?
所以如果我只有一个mousePressed事件,那么我就不需要mouseMotionListener了?如果我有mouseEntered或mouseExited的话?
发布于 2009-11-26 01:30:39
是的,你是对的。当鼠标移动到“热点”上时,mouseMotionListener用于执行操作。
here就是一个很好的例子
在处理mousePressed事件时,您只需要mousePressed事件,除非您想要在鼠标悬停时添加更多要执行的事件。
发布于 2009-11-26 01:33:19
它们监听不同的事件:
MouseListener
mouseClicked(MouseEvent event) // Called just after the user clicks the listened-to component.
mouseEntered(MouseEvent event) // Called just after the cursor enters the bounds of the listened-to component.
mouseExited(MouseEvent event) // Called just after the cursor exits the bounds of the listened-to component.
mousePressed(MouseEvent event) // Called just after the user presses a mouse button while the cursor is over the listened-to component.
mouseReleased(MouseEvent event) // Called just after the user releases a mouse button after a mouse press over the listened-to componentMouseMotionListener
mouseDragged(MouseEvent event) // Called in response to the user moving the mouse while holding a mouse button down. This event is fired by the component that fired the most recent mouse-pressed event, even if the cursor is no longer over that component.
mouseMoved(MouseEvent event) // Called in response to the user moving the mouse with no mouse buttons pressed. This event is fired by the component that's currently under the cursor.根据你想要的事件添加监听器。
https://stackoverflow.com/questions/1798582
复制相似问题