我编写了一个程序,其中包含两个使用 mouseListeners 的组件:
- ResizeRectangle 绘制一个带有手柄的矩形,并允许移动和调整矩形的大小。它处理 MouseEvents 和 MouseMotionEvents(MouseMove、MousePressed、MouseDragged 和 MouseReleased)。
- IconGrid 在矩形内绘制图标网格,并允许选择(单击)图标。它为此处理 MouseClicked 事件。
在 Windows 下一切正常。我今天尝试将程序移植到 Mac,但是 MouseClicked 事件永远不会被触发。我将 MouseClicked 事件放在 ResizeRectangle 中,但它也不会被触发。我将 MouseReleased 事件放在 IconGrid 中,它确实被解雇了。所以问题似乎真的出在 mouseClicked 事件上。
我阅读了另一篇文章,该文章指出,在 Mac 上,即使鼠标按下和鼠标释放之间的微小像素变化也会导致 MouseClicked 不会被触发。但即使我在空中用鼠标单击(因此没有机会在按下和释放之间移动鼠标),mouseClicked 事件也不会被触发。
还有其他人有这个问题吗?这是Mac上的错误吗?