TouchPoint в JavaFX на Raspberry Pi иногда по умолчанию устанавливает координаты в ноль - PullRequest
0 голосов
/ 13 сентября 2018

Я создаю приложение JavaFX для Raspberry Pi 3B + с официальным 7-дюймовым сенсорным экраном (800x480). Я использую последнюю безликую Raspbian Jessie. Экран питается от Raspberry Pi через провода-перемычки и соединяется с лентой DSI Приложение имеет вертикальную компоновку, поэтому я поворачиваю изображение с помощью display_rotate=3 в config.txt и поворачиваю сенсорные вводы в самом JavaFX, используя следующие параметры JVM (dtoverlay=rpi-ft5406,touchscreen-swapped-x-y=1,touchscreen-inverted-y=1,touchscreen-size-x=480 в config.txt дает тот же результат) :

-Dmonocle.input.0/0/0/0.minX=0
-Dmonocle.input.0/0/0/0.maxX=480
-Dmonocle.input.0/0/0/0.minY=480
-Dmonocle.input.0/0/0/0.maxY=-320
-Dmonocle.input.0/0/0/0.flipXY=true

Теперь, это работает большую часть времени. Однако в некоторых случаях (легко воспроизвести, быстро нажав в той же точке), точка касания не регистрируется должным образом, и одна из координат возвращается как 0, как 0.0, 765.0 или 442.0, 0.0 (так что если пользователь пытается нажать кнопку, ничего не происходит, так как касание отбрасывается в левую / верхнюю часть). Это может произойти в любой точке экрана, и это не связано с загрузкой процессора. Прямо сейчас я использую Liberica JDK 10, до того, как я использовал OpenJDK8, ошибка присутствовала в обоих случаях. Что я могу с этим сделать, есть ли способ повторно опросить экран вручную? Я использую следующий код для регистрации координат Touchpoint (корень является основным узлом приложения)

root.setOnTouchPressed(event -> {
            TouchPoint point = event.getTouchPoint();
            System.out.println(point.getSceneX() + "," + point.getSceneY());
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...