多点触控跨平台java应用程序(Windows,Mac和Linux(Ubuntu)(可能是Android))

mpy*_*yne 15 java linux macos ubuntu android

我试图为现有的跨平台java项目添加多点触控.我已经研究过2种方法.还有其他几种方式,但它们似乎不是跨平台或需要特殊软件.

  1. JavaFx - 在Windows和osx上运行手势/ touchevent事件但在Ubuntu 16.04上无法运行.
  2. MT4J - 看起来已经停产和/或不受支持.

我对上述结论的结论可能是错误的,并愿意在给予良好反馈的情况下再次尝试.

反正有没有实现跨平台的多点触控java应用程序?似乎我可能需要编写一些本机代码并通过JNI添加它,这似乎很多工作.关于这种思路的任何想法?请反馈,谢谢.

延续1.0:

我一直在调查在Linux上使用JavaFX主要是因为现在使用JavaFX的唯一缺点是linux多点触控支持.我发现JavaFx多点触控适用于嵌入式系统的Linux发行版(例如:Raspberry Pi,可能最诚实).我可以从中收集的是,如果可以为嵌入式系统编译OpenJFX,那么OpenJFX的嵌入式版本直接使用设备驱动程序来获取输入(/ dev/input /)而不是X11/GTK.由于桌面的Linux dists使用X11/GTK输入到桌面环境,JavaFx由于缺乏支持而无法获得这些事件.

我不想使用链接,但在这里

https://wiki.openjdk.java.net/display/OpenJFX/Building+the+OpenJFX+embedded+stack+for+Linux+desktop

上面的链接,至少在我看来是关于编译一个版本的OpenJFX for x86系统(应该工作x64),它使用嵌入式系统获取设备输入的方式.我能够编译这个版本,但是当我运行它时,它似乎会崩溃桌面,有时它确实会让Java App失效.当Java App保持运行时,触摸事件确实有效,但这种结果是不可接受的,因为它是不可预测的并且似乎使桌面管理器崩溃(此后需要重新启动桌面).

延续1.1:

我研究了使用TUIO,但没有一个示例程序工作.他们说你需要一个TUIO启用设备,它可能是我的设备不使用的特殊标准/ protocal.几乎只是下载了TUIO演示并在触摸屏上运行它没有运气.

我还想过将xev附加到我的java应用程序窗口并将结果流式传输到一个文件,后者由java应用程序读取并解析为java事件.这看起来非常h​​acky,我不确定它是否会起作用.如果有人会说明这种工作的可能性,我可以尝试一下.但在这一点上,似乎有很多工作要做.

延续1.2:

发现这个https://bugs.openjdk.java.net/browse/JDK-8090954 并认为它很有趣.

发布下面的解决方案.

Alo*_*Sen 3

最近出现了很多跨平台项目生成器

React Native、Cordova 都是其中的一些

我使用过React Native。它使用根据平台编译的javascript代码

React Native 支持手势控制编程

https://facebook.github.io/react-native/docs/gesture-responder-system.html
Run Code Online (Sandbox Code Playgroud)

您还可以将代码的 React 部分与您已经编写的应用程序的现有 JAVA 代码连接起来

https://facebook.github.io/react-native/docs/integration-with-existing-apps.html
Run Code Online (Sandbox Code Playgroud)