Java 使用GTK的linux上触摸屏和openjfx的滚动问题

Java 使用GTK的linux上触摸屏和openjfx的滚动问题,java,javafx,javafx-8,gtk3,gtk2,Java,Javafx,Javafx 8,Gtk3,Gtk2,我目前正在开发一个以触摸屏为中心的kiosk类型的应用程序,其中包含视频列表。用户将使用触摸屏滚动至他想要观看的视频,然后按以观看。我在安装了Ubuntu20.04 LTS的英特尔NUC上运行这个。这是触摸屏的lsusb信息: Bus 001 Device 018: ID 2575:0401 Weida Hi-Tech CoolTouchR System 我用java/javafx编写这个应用程序,因为它是我最熟悉的 当我使用GTK3(默认)时,应用程序不会响应任

我目前正在开发一个以触摸屏为中心的kiosk类型的应用程序,其中包含视频列表。用户将使用触摸屏滚动至他想要观看的视频,然后按以观看。我在安装了Ubuntu20.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中看到它的发生。 当我开始从底部向下拖动时,请注意滚动条/数字。

我尝试过使用不同版本的java/javafx:

  • oraclejdk8
  • OpenJDK 8
  • OpenJDK 11+Glion OpenJFX 11(也尝试了v15)
  • Liberica OpenJRE 8完整版
他们都给出了与GTK2/GTK3完全相同的问题

复制此错误的代码如下所示:

公共类应用程序扩展应用程序{
public void start(Stage)引发异常{
VBox VBox=新的VBox();
对于(int i=0;i<1000;i++){
vBox.getChildren().add(新标签(“标签:+i));
}
ScrollPane ScrollPane=新的ScrollPane(vBox);
scrollPane.setPannable(true);
stage.setScene(新场景(滚动窗格));
stage.show();
}
}

我还没找到解决办法,以前有人遇到过吗?有人知道如何解决这个问题吗?谢谢

使用
列表视图
。您可能只是有太多的
节点
,正在消耗所有内存。查看您提供的链接,这可能是一个尚未修复的错误。@Sedrick我只是创建了很多节点,以便滚动浏览内容,但实际实现中并不是这样编程的。该错误的行为完全相同。