如何解决使用GTK在Linux上的触摸屏和openjfx滚动问题
我目前正在开发带有触摸屏的信息亭类型的应用程序,其中包含视频列表。用户将使用触摸屏滚动到他想观看的视频,然后在其上按下以观看该视频。我在安装了Ubuntu 20.04 LTS的Intel NUC上运行此程序。这是触摸屏的lsusb信息:
Bus 001 Device 018: ID 2575:0401 Weida Hi-Tech CoolTouchR System
我正在用java / javafx编写此应用程序,因为这是我最感到满意的。
当我使用GTK3(默认)时,该应用程序不响应任何触摸屏事件,
我发现here,可以使用-Djdk.gtk.version=2
来强制Java使用GTK2。这对于普通的触摸输入有效,但是当我开始滚动时,在用户移动手指而不触摸屏幕以使滚动范围超出屏幕允许范围后,屏幕会回弹。这仅在JavaFX应用程序中的Linux上发生。 GTK应用程序(例如Ubuntu应用程序商店)不必遇到问题。
您可以在我录制的gif中看到它的发生。 当我开始从底部拖动向下时,请观看滚动条/数字。 Gif link
我尝试使用不同版本的java / javafx:
- Oracle JDK 8
- OpenJDK 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();
}
}
我还无法找到修复程序,之前是否有人遇到过此问题?有谁知道如何解决这一问题?谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。