问题描述
我目前正在开发带有触摸屏的信息亭类型的应用程序,其中包含视频列表。用户将使用触摸屏滚动到他想观看的视频,然后在其上按下以观看该视频。我在安装了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 (将#修改为@)