微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用GTK在Linux上的触摸屏和openjfx滚动问题

如何解决使用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 举报,一经查实,本站将立刻删除。