如何在Java中处理多个鼠标输入?

12
一个朋友让我实现一个蓝色和一个红色指针,用来表示两个独立鼠标的输入,以加快实时音频混音的混音台场景。我很愿意帮忙,但是尽管我认为这是个好主意,我完全不知道从哪里开始寻找可能的解决方案。
我应该从哪里开始研究实现双鼠标输入的可行方法?

把这个问题推到最前面:我一直在考虑如何利用许多开发人员(应该)拥有的第二个屏幕来编写软件,并为配对编程中的两个开发人员提供鼠标输入。然后我意识到这将会涉及很多硬件驱动程序方面的问题,我完全不知道从何入手。 - pbh101
4个回答

7

看看jinput

我已经使用多个键盘与之配合工作,几乎可以肯定它也支持多个鼠标。


我同意Paul的观点。实际上,在JInput论坛中稍微挖掘一下,就会发现这个链接: http://www.javagaming.org/index.php/topic,16681.0.html - Keith Lawrence

3

3

这取决于您打算使用哪个操作系统。

Windows上,您可以使用:

  1. CPNMouse - 一个驱动程序+软件组合,非常灵活,允许完全隐藏某些鼠标设备。
  2. RawInput - 仅提供给Windows XP的API。您可以使用它来区分两个鼠标输入,自己绘制光标并隐藏主光标。查看SDGT的代码,这是该API的C#用法。
  3. 对于这两种解决方案,您都需要构建一个JNI桥接到您的应用程序中。
如果您正在使用X.Org(X11)服务器,则有一个补丁版本称为MPX,应支持多个鼠标,即使对于旧应用程序也是如此。它现在应该是X.Org主干的一部分,但我对此不太熟悉。无论如何,它有一个API,因此您可以通过JNI桥使用它。

0

您可以使用多个设备,但在Java级别上,所有鼠标事件都被合并成一个流。该事件不包括它来自哪个鼠标。您确实说过想混音,对吧?嗯,这种混音可能很有趣,但肯定不是您想要的。

我建议使用Java支持的MIDI接口,并连接一些简单的MIDI控制器设备,例如多个旋钮或轨迹球。这些将作为MIDI事件输入,您可以检查状态以获取所需的详细信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接