我在窗户内有画布。窗口是全屏的,但画布不是。我需要在画布内部获取鼠标位置,但不要在窗口内部。我该怎么做?
我需要每秒多次获取鼠标位置,即使鼠标没有移动,所以使用MouseMoved监听器还不够好。
有没有办法在画布中获取鼠标位置而无需调用任何鼠标滑块?
答案 0 :(得分:3)
存储鼠标位置。如果它没有移动那么位置是相同的。然后使用鼠标移动的动作侦听器在更改时更新存储的鼠标位置状态。
答案 1 :(得分:1)
这里只是一个关于我如何做的简单例子。起初:
获取JFrame的组件:
Component[] components = yourJFrame.getComponents();
获取画布(注意:如果在添加画布之前添加了一些内容,则它不会是组件0.伪代码add : button1, add:button2, add:canvas
中的示例 - canvas = components [2]):
Component canvas = components[0];
获取鼠标的位置:
int mouse_x=MouseInfo.getPointerInfo().getLocation().x-canvas.getLocationOnScreen().x;
int mouse_y=MouseInfo.getPointerInfo().getLocation().y-canvas.getLocationOnScreen().y;
绝对不需要听众。 如果您对此有任何疑问,请随时发表评论。