我想写一个函数,如果鼠标在画布上,如果不是,则返回。truefalse我的解决方案基本上看起来像这样:import java.awt.MouseInfo;Point globalMouse;boolean mouseOverCanvass() { globalMouse = MouseInfo.getPointerInfo().getLocation(); boolean mouseInXRange = (canvass.X < globalMouse.X) && (globalMouse.X < canvass.X + width); boolean mouseInYRange = (canvass.Y < globalMouse.Y) && (globalMouse.Y < canvass.Y + height); if (mouseInXRange && mouseInYRange) { return true; } else { return false; }}问题是我找不到画布的位置。我找到了这个解决方案来获取窗口的位置,但这提供了包括顶部栏在内的坐标,而我想要该窗口中画布的位置。
1 回答

繁花不似锦
TA贡献1851条经验 获得超4个赞
重写 PApplet 提供的 mouseEntered() 和 mouseExited() 方法,使用布尔变量跟踪当前鼠标悬停在画布上的状态:
boolean mouse_over = false;
@Override
public void mouseEntered() {
mouse_over = true;
}
@Override
public void mouseExited() {
mouse_over = false;
}
添加回答
举报
0/150
提交
取消