java - 如何检查鼠标是否在处理 3 中的画布上?
问题描述
我想编写一个函数,true
如果鼠标在画布上则返回,否则返回false
。
我的解决方案基本上是这样的:
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;
}
}
问题是我找不到画布位置。我找到了获取窗口位置的解决方案,但这提供了包括顶部栏的坐标,而我想要该窗口中画布的位置。
解决方案
覆盖 PApplet 提供的mouseEntered()和mouseExited()方法,使用布尔变量来跟踪当前鼠标悬停在画布上的状态:
boolean mouse_over = false;
@Override
public void mouseEntered() {
mouse_over = true;
}
@Override
public void mouseExited() {
mouse_over = false;
}
推荐阅读
- arduino - 我想使用 TM4C123 TIVA C LaunchPad 作为 ICSP Arduino 程序员
- ios - 检查用户是否登录到 App Store?对象 iOS
- azure-devops - 发布或环境部署前的 VSTS 变量提示
- customization - 从自助服务选项卡访问时,创建用户任务流中的按钮损坏
- square-connect - 在 Salesforce 中使用 Square 和 XMLHttpRequest 或 JQuery Ajax 来发布交易
- django - django收集静态不起作用
- html - 两列包含不同高度的垂直居中 div 的 div
- sql-server - 是否可以稍后在对象中调用 EXECUTE AS OWNER ?
- angular - 角度 2 - httpClient 正在返回空标题
- mysql - 如何在表格中获取满足不同标准的产品和价格列表