java - 使用 GTK 在 linux 上使用触摸屏和 openjfx 滚动问题
问题描述
我目前正在开发一个带有视频列表的以触摸屏为中心的信息亭类型的应用程序。用户将使用触摸屏滚动到他想看的视频,然后按下它来查看它。我在安装了 Ubuntu 20.04 LTS 的英特尔 NUC 上运行它。这是触摸屏的 lsusb 信息:
Bus 001 Device 018: ID 2575:0401 Weida Hi-Tech CoolTouchR System
我正在用 java/javafx 编写这个应用程序,因为它是我最满意的。
当我使用 GTK3(默认)时,应用程序不响应任何触摸屏事件,我在这里找到了,我可以使用它-Djdk.gtk.version=2
来强制 java 使用 GTK2。这适用于正常的触摸输入,但是当我开始滚动屏幕时,在用户移动手指而不触摸屏幕以滚动比屏幕允许的更远之后,屏幕会回弹。这只发生在 Linux 上的 javaFX 应用程序中。GTK 应用程序,如 Ubuntu 应用程序商店,没有问题。
你可以在我录制的这个 gif 中看到它的发生。当我开始从底部向下拖动时,请注意滚动条/数字。 GIF 链接
我尝试过使用不同版本的 java/javafx:
- 甲骨文 JDK 8
- 开放JDK 8
- OpenJDK 11 + Gluon OpenJFX 11(也试过 v15)
- Liberica OpenJRE 8 完整版
他们都给出了与 GTK2/GTK3 完全相同的问题
复制此错误的代码如下:
public class App extends Application {
public void start(Stage stage) throws Exception {
VBox vBox = new VBox();
for (int i = 0; i < 1000; i++) {
vBox.getChildren().add(new Label("Label: "+i));
}
ScrollPane scrollPane = new ScrollPane(vBox);
scrollPane.setPannable(true);
stage.setScene(new Scene(scrollPane));
stage.show();
}
}
我还没有找到解决方法,有其他人遇到过吗?有谁知道如何解决这一问题?谢谢
解决方案
推荐阅读
- office-js - Outlook 插件:对话框:Office.js 已在 Office 客户端之外加载”在对话框弹出窗口 - IE 和 Edge
- docker - Nimbus 主机分辨率不正确
- javascript - 在 JavaScript 中添加指向子节点的链接
- json - 如何将从 Firebase 返回的 JSON 解析为 Google 表格行?
- python-3.x - Google Colab - tensowflow 对象检测 api - “函数”对象没有“调用”属性
- javascript - JS - 将 div 高度设置为窗口高度
- javascript - venn.js - JS venn 图 - 无法复制示例代码
- jdbc - informix 信任没有密码的本地 JDBC 连接
- c# - 如何在 Web API 操作中指定动态值类型参数?
- php - HEREDOC 文本和变量格式问题