Java 使用GTK的linux上触摸屏和openjfx的滚动问题
我目前正在开发一个以触摸屏为中心的kiosk类型的应用程序,其中包含视频列表。用户将使用触摸屏滚动至他想要观看的视频,然后按以观看。我在安装了Ubuntu20.04 LTS的英特尔NUC上运行这个。这是触摸屏的lsusb信息: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(默认)时,应用程序不会响应任
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完整版
公共类应用程序扩展应用程序{
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我只是创建了很多节点,以便滚动浏览内容,但实际实现中并不是这样编程的。该错误的行为完全相同。