Como desenvolver aplicações multi-touch em Java?
-
21-08-2019 - |
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.
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.
Como sobre este: http://kenai.com/projects/macmultitouch
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 .