当前位置: 首页 > 面试题库 >

Jinput-获取鼠标位置

汤枫涟
2023-03-14
问题内容

我正在尝试使用Jinput打印出鼠标位置:

public static void main(String[] args) {
    input = new InputManager();

    while (true) {
        for (Mouse mouse : input.getMice()) {
            mouse.poll();
            System.out.println("Mouse X: " + mouse.getX().getPollData());
            System.out.println("Mouse Y: " + mouse.getY().getPollData());
            System.out.println("---------");
        }
        try {
            Thread.sleep(100);
        } catch (Exception e) {
            // DO NOTHING < BAD
        }
    }
}

这是我的InputManager,它在初始化时扫描所有输入设备,并将所有鼠标分离到单独的列表中:

public class InputManager {
    public ArrayList<Mouse> mice;

    public InputManager() {
        mice = new ArrayList<Mouse>();
        Controller[] inputs = ControllerEnvironment.getDefaultEnvironment()
            .getControllers();
        for (int i = 0; i < inputs.length; i++) {
            Mouse mouse;
            if (inputs[i].getType() == Controller.Type.MOUSE) {
                mouse = (Mouse) inputs[i];
                mice.add(mouse);
            }
        }
        System.out.println("Discovered " + mice.size() + " mice.");
    }

    public ArrayList<Mouse> getMice() {
        return mice;
    }
}

x和y的打印信息始终为0。我在Windows 10上运行此程序,是否会引起任何问题?如何使用Jinput从鼠标获取鼠标数据?


问题答案:

JInput处于较低级别,您正在混淆窗口指针和鼠标。鼠标只是相对轴>
2的设备。每次轮询后或在每个事件中的值都不是像素数或位置,它仅是从其先前值开始的大致抽象单位的偏移量。对于相同的物理距离更改,某些鼠标报告较大的值,因此必须缩放它,这就是使用DirectX鼠标(也是相对轴设备)的游戏具有鼠标缩放滑块的原因。



 类似资料:
  • 问题内容: 我想在Java中模拟鼠标的自然运动(从此处逐像素移动)。为此,我需要知道起始坐标。 我找到了方法event.getX()和event.getY(),但是我需要一个事件… 我如何不做任何事情(或看不见的事情)就知道职位? 谢谢 问题答案: MouseInfo.getPointerInfo()。getLocation()可能会有所帮助。它返回与当前鼠标位置相对应的Point对象。

  • 本文向大家介绍js获取鼠标位置实例详解,包括了js获取鼠标位置实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js获取鼠标位置的方法。分享给大家供大家参考,具体如下: 用 javascript 获取当前页面上鼠标(光标)位置在许多情况下都会用到,比如拖放,悬停提示(tooltip) 等等。当然,这里我们依然要面对浏览器的兼容问题,在不同的浏览器下,对这些相关的属性处理方式也不同,这

  • 我试图在JavaFX应用程序中获取鼠标点击的位置。我有一个事件处理程序: 这就是所谓的鼠标按下,释放和拖动。当我尝试更改EventHandler时,我无法从事件中获取鼠标的位置 我怎样才能把这个转移到MouseEvents?

  • 问题内容: JFreeChart中是否有一种方法可以从ChartMouseEvent中确定鼠标悬停在绘图空间中的x,y坐标?我尝试使用域十字线值,但这似乎不准确并且滞后于实际的鼠标事件。 谢谢, 杰夫 问题答案: 鼠标坐标相对于ChartPanel,因此您需要对其进行转换:

  • 问题内容: 有没有一种方法可以将位置鼠标插入标签?我想要相对于而不是整个页面右上角的位置。 问题答案: 最简单的方法可能是向canvas元素添加onmousemove事件侦听器,然后您可以从事件本身获取相对于画布的坐标。 如果您只需要支持特定的浏览器,则完成此任务很简单,但是f.ex之间存在差异。Opera和Firefox。 像这样的东西应该适用于这两个:

  • 本文向大家介绍Javascript 获取鼠标当前的位置实现方法,包括了Javascript 获取鼠标当前的位置实现方法的使用技巧和注意事项,需要的朋友参考一下 有时候,我们需要得到窗口拖动或者鼠标移动的距离,此时可以通过计算鼠标前后在页面中的位置来得到想要的结果,下面介绍几个事件属性: 1、客户区坐标位置   鼠标事件都是在浏览器视口中的特定位置上发生的。这个位置信息保存在事件对象的 client