Как разрабатывать мультитач-приложения на Java?

StackOverflow https://stackoverflow.com/questions/369301

  •  21-08-2019
  •  | 
  •  

Вопрос

Предвидя тот день, когда мультисенсорные интерфейсы станут более распространенными, существуют ли на Java библиотеки, которые можно будет использовать для разработки сенсорных приложений?Я ищу интерфейсы, похожие на MouseListener/MouseMotionListener/MouseWheelListener.

Это было полезно?

Решение

В проекте MT4j есть все необходимое для разработки мультитач-приложений на Java.Все хорошо известные жесты MultyTouch уже встроены и могут быть доступны так же просты, как прослушивание событий мыши (например:компонент.addGestureListener(..)).Он также имеет граф сцены с аппаратным ускорением, аналогичный JavaFX.Вы даже можете имитировать мультитач-ввод, подключив к компьютеру одну или несколько мышей.Проверьте это на http://www.mt4j.org

Другие советы

Спарш все еще находится в моих закладках с тех пор, как я в последний раз исследовал Java-решения с поддержкой мультитач.

Хотя он и не так прост, как обычный прослушиватель мыши или прослушиватель щелчков, он все же обеспечивает разумный интерфейс.

Вам нужен класс прослушивания для реализации sparshui.client.Client, что требует processEvent определение метода.

public void processEvent(int groupID, Event event) {

        if(event instanceof TouchEvent) {
            TouchEvent e = (TouchEvent)event;
            if(e.getState() == TouchState.BIRTH) {
                //do initial touch stuff
            } else if(e.getState() == TouchState.MOVE) {
                //do dragging stuff
            }
        }
        else if(event instanceof DragEvent) {
            DragEvent e = (DragEvent)event;
            //do DragEvent specific stuff
        } else if(event instanceof RotateEvent) {
            RotateEvent e = (RotateEvent)event;
            //do RotateEvent specific stuff
        } else if(event instanceof ZoomEvent) {
            ZoomEvent e = (ZoomEvent)event;
            //do ZoomEvent specific stuff
        }
        //several other gesture types....
}

После этого вам нужно запустить сервер распознавания жестов, передав свой компонент

new ServerConnection("localhost", objectImplementingClientInterface);

Просмотр примеров кода на сайте должен дать вам довольно хорошее представление о платформе.

Как насчет этого: http://kenai.com/projects/macmultitouch

В основном я занимаюсь обработкой и проектированием пользовательского интерфейса с нуля.Я искал решение, которое не предписывает структуру пользовательского интерфейса, которую, по-видимому, используют как MT4J, так и JavaFX.Более того, MT4J, похоже, заброшен.

Это выглядит многообещающим решением, по крайней мере, для Windows, но я не уверен, что оно уже выпущено:http://wiki.gestureworks.com/index.php/GestureWorksCore:Gestureworks_Core_Tutorials

Это специально для обработки, кросс-платформенной, с открытым исходным кодом и активной:https://github.com/vialab/SMT

MT4J не работает с Windows 8.

Если приложение предназначено только для одного пользователя, вы можете использовать JavaFX.Существуют разные прослушиватели событий касания.Но обрабатывать два жеста одновременно невозможно, потому что все точки касания сольются в один жест.Для больших мультитач экранов это недостаток.Для обычных экранов, где только один пользователь, это нормально.

Но есть также GestureWorks.Там вы можете определить новый жест или использовать предопределенный жест.Жесты определены в XML-файле (называемом GML).Любой объект может обрабатывать собственные жесты.Но вам придется реализовать hitTest и назначение баллов вручную.Но есть отличный урок.

Еще одна библиотека, которую я не тестировал, — это Multi Touch SDK от PQ Lab.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top