gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:24:14 27 4
gpt4 key购买 nike

我正在尝试向现有的跨平台 Java 项目添加多点触控。我已经研究了两种方法。还有其他几种方法,但它们似乎不能跨平台或需要特殊软件。

  1. JavaFx - 在 windows 和 osx 上处理手势/touchevent 事件,但在 Ubuntu 16.04 上不起作用。
  2. MT4J - 看起来已停产和/或不受支持。

我的上述结论可能是错误的,如果反馈良好,我愿意再试一次。

有没有办法实现跨平台的多点触控 java 应用程序?看来我可能需要编写一些 native 代码并通过 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

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

延续 1.1:

我研究过使用 TUIO,但没有一个示例程序有效。他们说您需要一个启用 TUIO 的设备,这可能是我的设备不使用的特殊标准/协议(protocol)。几乎只是下载了 TUIO 演示并在触摸屏上运行它,但没有成功。

我还考虑过将 xev 附加到我的 java 应用程序窗口并将结果流式传输到一个文件,以便稍后由 java 应用程序读取并解析为 java 事件。这看起来很老套,我不确定它是否会起作用。如果有人提出这项工作的可能性,我可能会尝试一下。但在这一点上,这似乎是很多工作的方式。

延续 1.2:

找到这个 https://bugs.openjdk.java.net/browse/JDK-8090954并认为这很有趣。

在下面发布了解决方案。

最佳答案

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

React native,Cordova 是其中的一些

我用过 React Native,它使用的是根据平台编译下来的 javascript 代码

React native 支持手势控制编程

https://facebook.github.io/react-native/docs/gesture-responder-system.html

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

https://facebook.github.io/react-native/docs/integration-with-existing-apps.html

关于java - 多点触控跨平台 java 应用程序(Windows、Mac 和 Linux(Ubuntu)(可能是 Android)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42637978/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com