在Java中,如何使用mouseClicked而不调用mousePressed和mouseReleased?

在Java中,如何使用mouseClicked而不调用mousePressed和mouseReleased?,java,mouseevent,mouselistener,Java,Mouseevent,Mouselistener,我正在写一个程序来画一个反弹的球,然后用户可以在屏幕上画矩形,球从矩形上反弹。在mousePressed中,标志被设置为true,只要该标志为true,就会从起点到当前点绘制一个矩形(使用MouseDraged)。该标志在MouseRelease中设置为false。我将使用mouseClicked删除单击的矩形(如果有)。我遇到的问题是,在mouseClicked上,mousePressed和mouseReleased都被称为。有什么方法可以让它不这样做吗?你可以检查一下鼠标是否被按下,如果是这

我正在写一个程序来画一个反弹的球,然后用户可以在屏幕上画矩形,球从矩形上反弹。在mousePressed中,标志被设置为true,只要该标志为true,就会从起点到当前点绘制一个矩形(使用MouseDraged)。该标志在MouseRelease中设置为false。我将使用mouseClicked删除单击的矩形(如果有)。我遇到的问题是,在mouseClicked上,mousePressed和mouseReleased都被称为。有什么方法可以让它不这样做吗?

你可以检查一下鼠标是否被按下,如果是这样,就不要设置标志

鼠标按下()
检查鼠标是否被按下在矩形内??使用您正在使用的相同功能, 如果单击鼠标以确定矩形是否存在

现在,如果此检查为true,请不要将drawRectangleFlag设置为true


仅供参考,上述解决方案无效,如果您想在矩形内绘制一个矩形

您是否可以改为使用鼠标按下的方法检查第一次单击是否在矩形内,并以这种方式删除?@dann.dev按鼠标键检查单击是否在矩形内?在按下按钮之前,单击不会完成。那么,如何才能检查按下按钮内部的点击呢?@MukulGoel如果无法绘制与其他矩形重叠的矩形,则无需担心完全点击,因为矩形内部的任何按下按钮都将被删除,因此只要您的MouseRelease方法仅将标志设置为false,在何处释放鼠标无关紧要。如果可以绘制重叠的矩形,则需要记录开始单击x/y并与释放的位置进行比较,然后可以有一个阈值来决定是单击还是绘制新矩形。讲得通吗?@dann.dev讲得通,先生。这与我回答的方法非常相似。我只是指出了一个术语“检查按键内部的点击”是不可能的。