Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaFx应用程序中检查机器/系统是否启用触摸功能?_Java_Javafx_Javafx 8 - Fatal编程技术网

如何在JavaFx应用程序中检查机器/系统是否启用触摸功能?

如何在JavaFx应用程序中检查机器/系统是否启用触摸功能?,java,javafx,javafx-8,Java,Javafx,Javafx 8,我们有一个JavaFx应用程序,在某些情况下,我们需要知道运行应用程序的Windows机器是否启用了触摸功能。仍然无法找到任何合适的解决方案。我没有尝试过,但根据文档: Platform.isSupported(ConditionalFeature.INPUT_TOUCH) 及 从JavaDoc: 在嵌入式平台上,JavaFX尝试初始化此 基于所连接的输入外围设备的条件功能。在…上 桌面平台此ConditionalFeature通常默认为 错 定义一组条件(可选)功能。 希望了解特定功能是否可

我们有一个JavaFx应用程序,在某些情况下,我们需要知道运行应用程序的Windows机器是否启用了触摸功能。仍然无法找到任何合适的解决方案。

我没有尝试过,但根据文档:

Platform.isSupported(ConditionalFeature.INPUT_TOUCH)

从JavaDoc:

在嵌入式平台上,JavaFX尝试初始化此 基于所连接的输入外围设备的条件功能。在…上 桌面平台此ConditionalFeature通常默认为 错

定义一组条件(可选)功能。
希望了解特定功能是否可用的应用程序可以使用以下方式查询:

对于触摸功能,可以使用以下功能:

自:
JavaFX8.0

不幸的是,“ConditionalFeature”方法确实不适用于“非嵌入式”系统,例如Surface Pro(可能也适用于其他支持触摸的笔记本电脑)。 但是,在这种情况下,您可以使用
setOnTouchPressed((TouchEvent))
方法至少在应用触摸时进行检测。它工作可靠,区别于触摸板或鼠标。
不幸的是,也没有找到一个在启动时直接检测的解决方案。

在桌面平台上,上述两个ConditionalFeature通常默认为false。太棒了,谢谢!这正是我想要的。不过还是需要测试一下。@Leet Falcon是的,当然,这就是我发布它的原因。复制粘贴错误。谢谢你指出这一点。我已经更新了答案。它至少在LinuxMint上有效(在带触摸屏的Asus上返回
true
,在PC上返回
false
)。我已经尝试过,但在基于Windows10的平板电脑上返回“false”。也许设置-Dcom.sun.javafx.isEmbedded=true&-Dcom.sun.javafx.touch=true会有所帮助
Platform.isSupported(ConditionalFeature.INPUT_MULTITOUCH)