Как разрабатывать мультисенсорные приложения на Java? - PullRequest
18 голосов
/ 15 декабря 2008

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

Ответы [ 5 ]

9 голосов
/ 06 сентября 2009

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

5 голосов
/ 15 декабря 2008

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);

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

1 голос
/ 20 августа 2009

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

0 голосов
/ 30 июля 2014

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

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

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

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

0 голосов
/ 30 апреля 2014

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

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

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

...