猿问

如何在处理3中检查鼠标是否在画布上?

我想写一个函数,如果鼠标在画布上,如果不是,则返回。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;

    }

}

问题是我找不到画布的位置。我找到了这个解决方案来获取窗口的位置,但这提供了包括顶部栏在内的坐标,而我想要该窗口中画布的位置。


牛魔王的故事
浏览 107回答 1
1回答

繁花不似锦

重写 PApplet 提供的 mouseEntered() 和 mouseExited() 方法,使用布尔变量跟踪当前鼠标悬停在画布上的状态:boolean mouse_over = false;@Overridepublic void mouseEntered() {&nbsp; &nbsp; mouse_over = true;}@Overridepublic void mouseExited() {&nbsp; &nbsp; mouse_over = false;}
随时随地看视频慕课网APP

相关分类

Java
我要回答