Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

Ответ 2

Sparsh по-прежнему находится в моих записях, когда я изучал многозадачные 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);

Взгляд на примеры кода на сайте должен дать вам довольно хорошее представление о структуре.

Ответ 4

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

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

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

Ответ 5

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

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

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

Другая библиотека, которую я не тестировал, представляет собой Multi Touch SDK от PQ Lab.