mouseReleased 和 mouseClicked 的区别

difference between mouseReleased and mouseClicked

搜索 JAVA api 文档,我知道了 mousePressed 和 mouseClicked 之间的区别。但是.. mouseClicked 方法涉及按下和释放,所以动作是在释放鼠标后完成的,我发现与 mouseReleased 没有太大区别。

我自己试了一下,发现按下和点击是不同的,因为动作的时间不同,但是点击和松开不是这样的。

我的程序是关于在 canvas

中选定的点绘制椭圆

我正在寻求有关此问题的帮助。

没有太大区别,但 mouseClicked 发生在以下情况:

Invoked when the mouse button has been clicked (pressed and released) on a component.

改为mouseReleased:

Invoked when a mouse button has been released on a component.

因此,如果您在应用程序外部单击,将鼠标拖到应用程序上并释放它,您将有一个 mouseReleased 事件,但没有 mouseClicked 事件,因为它被按下了在应用程序之外。

mouseClicked 当您在同一坐标中按下并释放鼠标按钮时起作用,显然是在 JComponent 内部。
mousePressed 在 JComponent 中按下鼠标按钮后立即工作。
mouseReleased 释放鼠标按钮后立即工作,前提是之前已在 JComponent 中按下。

当你在JComponent中按下鼠标按钮时,无论释放鼠标按钮的最终坐标是什么,它甚至可能在JComponent之外。
在所有情况下,无论按下和释放之间的时间长短。

来自秘鲁的 HCL

MouseDragged,当用户在按住鼠标按钮的同时移动鼠标时生成;

MouseReleased,当用户释放鼠标上的一个按钮时生成;

void mouseReleased(MouseEvent e)

在组件上释放鼠标按钮时调用。