Java mouseEntered()和mouseMoved()之间的混淆 我的小程序窗口的坐标:
左上角-(0,0)Java mouseEntered()和mouseMoved()之间的混淆 我的小程序窗口的坐标:,java,swing,event-handling,applet,mouseevent,Java,Swing,Event Handling,Applet,Mouseevent,左上角-(0,0) 左下角-(0199) 右上角-(349,0) 右下角-(349199) 我所期望的是: 当鼠标进入小程序窗口时,坐标(0,10) 当鼠标移动时,状态窗口中应显示消息“mouseX,mouseY移动鼠标”。其中mouseX和mouseY是鼠标的当前坐标 实际发生的情况: 消息“鼠标输入”不会显示在坐标(0,10)处,而是显示在鼠标进入小程序窗口的初始坐标处*** 例如,鼠标从左下角和右下角之间进入小程序窗口,比如说(187199),然后消息“鼠标输入”,而不是显示在(0,10)
左下角-(0199)
右上角-(349,0)
右下角-(349199) 我所期望的是:
(0,10)
“mouseX,mouseY移动鼠标”
。其中mouseX
和mouseY
是鼠标的当前坐标“鼠标输入”
不会显示在坐标(0,10)
处,而是显示在鼠标进入小程序窗口的初始坐标处***
例如,鼠标从左下角
和右下角
之间进入小程序窗口,比如说(187199)
,然后消息“鼠标输入”
,而不是显示在(0,10)
,而是显示在(187199)
我的问题
尽管在mouseenterned()
中指定了mouseX=0
和mouseY=10
,但为什么消息“Mouse Entered”
显示在鼠标进入小程序窗口的坐标处,而不是坐标(0,10)
每次移动鼠标时,mouseMoved部分中的代码都会更新。因此,它之所以显示mouseX和mouseY而不是(0,10),是因为您在mouseMoved方法中更改了mouseX和mouseY的值。使其在鼠标的最后位置显示坐标。尝试创建一个不同的变量来跟踪鼠标的位置
每次移动鼠标时,mouseMoved部分中的代码都会更新。因此,它之所以显示mouseX和mouseY而不是(0,10),是因为您在mouseMoved方法中更改了mouseX和mouseY的值。使其在鼠标的最后位置显示坐标。尝试创建一个不同的变量来跟踪鼠标的位置。当您将鼠标移到查看窗格上时,查看窗格会经常被重新绘制。 您正在此处覆盖
mouseX
和mouseY
的值:
public void mouseMoved(MouseEvent me)
{
mouseX = me.getX();
mouseY = me.getY();
showStatus("Moving mouse at "+mouseX+", "+mouseY);
}
这将导致移动鼠标时在这些坐标处进行重绘。如果您不想移动鼠标,可以使用局部变量,例如
public void mouseMoved(MouseEvent me)
{
mouseX = me.getX();
mouseY = me.getY();
showStatus("Moving mouse at "+mouseX+", "+mouseY);
}
当您将鼠标移到查看窗格上时,它会经常被重新绘制。 您正在此处覆盖
mouseX
和mouseY
的值:
public void mouseMoved(MouseEvent me)
{
mouseX = me.getX();
mouseY = me.getY();
showStatus("Moving mouse at "+mouseX+", "+mouseY);
}
这将导致移动鼠标时在这些坐标处进行重绘。如果您不想移动鼠标,可以使用局部变量,例如
public void mouseMoved(MouseEvent me)
{
mouseX = me.getX();
mouseY = me.getY();
showStatus("Moving mouse at "+mouseX+", "+mouseY);
}
首先执行的是哪个函数,
mouseEntered
或mouseMoved
?@kevingomesmouseEntered
为什么在mouseEntered
完成执行之前,mouseMoved
仍处于挂起状态?@kevingomes,因为当mouseMoved
正在更改mouseX
和mouseY
的值时,mouseEntered
是否停止或继续执行,这两个任务都是在上排队的独立任务。我的意思是,无论它们是否同时运行?首先执行哪个函数,mouseEntered
或mouseEntered
?@kevingomesmouseEntered
为什么在mouseEntered
完成执行之前,mouseMoved
仍处于挂起状态?@kevingomes,因为当mouseMoved
正在更改mouseX
和mouseY
的值时,mouseEntered
是否停止或继续执行,这两个任务都是在上排队的独立任务。我的意思是,它们是否同时运行?