Pergunta

Antecipando o dia em que as interfaces multi-touch tornam-se mais difundida, existem bibliotecas em Java que podem ser usados ??para o desenvolvimento de aplicações sensíveis ao toque? Eu estou olhando para interfaces semelhantes a MouseListener / MouseMotionListener / MouseWheelListener.

Foi útil?

Solução

O projeto MT4j tem tudo que você precisa para desenvolver aplicativos multitoque em java. Todos os gestos multitoque bem conhecidos já são construídos em e pode ser acessado tão simples como ouvir eventos de mouse (por exemplo: component.addGestureListener (..)). Ele também possui um grafo de cena hardware acelerado, semelhante ao JavaFX. Você pode até mesmo simular a entrada multitouch, ligando um ou mais ratos para a sua máquina. Confira em http://www.mt4j.org

Outras dicas

Sparsh ainda está em meus favoritos a partir da última vez que eu estava investigando java multitouch soluções.

Apesar de não ser tão simples como o ouvinte rato típico ou clique ouvinte, ele ainda fornece uma interface razoável.

Você precisa de sua classe de escuta para implementar sparshui.client.Client, o que exige a definição do método 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....
}

Depois disso, você precisa para iniciar o servidor de reconhecimento de gestos, passando em seu componente

new ServerConnection("localhost", objectImplementingClientInterface);

Olhando para os exemplos de código no site deve dar-lhe uma boa idéia bastante do quadro.

Eu estou trabalhando principalmente em processamento e projetar a minha UI a partir do zero. Eu estive procurando uma solução que não prevê um quadro UI que tanto MT4J e JavaFX parecem fazer. Além disso, MT4J parece estar abandonada.

Isto parece uma solução promissora, pelo menos para o Windows mas não estou certo se é realmente lançado ainda: http://wiki.gestureworks.com/index.php/GestureWorksCore:Gestureworks_Core_Tutorials

Este é especificamente para processamento, multi-plataforma, open-source e ativo: https://github.com/vialab/SMT

MT4J não funciona com o Windows 8.

Se o applicatin é apenas para um usuário, você pode usar JavaFX . Há ouvinte diferente para eventos de toque. Mas não é possível processar dois gestos ao mesmo tempo, porque todos os pontos de contato irão se fundir a um gesto. Para grandes telas multi toque é uma disadvange. Para telas normais, onde é apenas um usuário o seu ok.

Mas também existe GestureWorks . Lá você pode definir novo gesto ou utilizar o gesto predefinidos. Os gestos são definidos em um arquivo XML (chamada GML). Qualquer objeto pode lidar com lá próprios gestos. Mas você tem que implementar a hitTest ea atribuição ponto manualmente. Mas há um greate tutorial .

Outra biblioteca, que eu não testado, ist o Multi Touch SDK por PQ Lab .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top