2008-12-15 14 views

Respuesta

9

proyecto El MT4j tiene todo lo necesario para desarrollar aplicaciones multitáctiles en Java. Todos los gestos multitáctiles bien conocidos ya están incorporados y se puede acceder tan simple como como escuchar eventos del mouse (por ejemplo: component.addGestureListener (..)). También presenta un gráfico de escena acelerado por hardware, similar a JavaFX. Incluso puede simular la entrada multitáctil conectando uno o más ratones a su máquina. Échale un vistazo a http://www.mt4j.org

+0

¿Permite MT4j al desarrollador crear nuevos gestos multitáctiles, además de los incorporados? No aparente de inmediato de la lista de características de MT4j en la página web. –

+0

Sí, MT4j ciertamente permite crear nuevos gestos multitáctiles, ya que es un requisito muy importante para las aplicaciones multitáctiles. Todo lo que tiene que hacer es crear un nuevo procesador de entrada y registrarlo con un componente. Los tutoriales que muestran cómo hacerlo llegarán pronto. Hasta entonces, puedes mirar el código fuente de los gestos existentes. –

+0

MT4j se ve muy bien, desafortunadamente es GPL y por lo tanto no es adecuado para aplicaciones comerciales. – hendrik

5

Sparsh sigue en mis marcadores desde la última vez que estuve investigando soluciones java multitouch.

Aunque no es tan sencillo como el oyente de mouse típico o el oyente de clic, sigue ofreciendo una interfaz razonable.

Necesita su clase de escucha para implementar sparshui.client.Client, que requiere la definición del 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.... 
} 

Después de eso, es necesario poner en marcha el servidor de reconocimiento de gestos, pasando en su componente

new ServerConnection("localhost", objectImplementingClientInterface); 

En cuanto a los ejemplos de código en el sitio debe darle una idea bastante clara de la estructura.

+3

Ouch ... realmente, tienes que 'instanciar' los eventos? No proporcionan devoluciones de llamada como, processDragEvent, processZoomEvent, etc. –

+0

Que yo sepa, solo admiten una llamada genérica de "processEvent" porque es posible que desee agregar gestos personalizados que no sean nativos del marco. Esto proporciona esa extensibilidad sin tener que modificar el código de la estructura. –

0

Principalmente estoy trabajando en el procesamiento y diseño de mi interfaz de usuario desde cero. He estado buscando una solución que no prescriba un marco de interfaz de usuario que parezca que hacen tanto MT4J como JavaFX. Además, MT4J parece estar abandonado.

Esto parece ser una solución prometedora al menos para Windows, pero estoy seguro si en realidad es liberado aún: http://wiki.gestureworks.com/index.php/GestureWorksCore:Gestureworks_Core_Tutorials

Esto es específicamente para el procesamiento, multiplataforma, de código abierto y activo: https://github.com/vialab/SMT

0

MT4J no funciona con Windows 8.

Si el Applicatin es sólo para un usuario, puede utilizar JavaFX . Hay diferentes oyentes para eventos táctiles. Pero no es posible procesar dos gestos al mismo tiempo, porque todos los puntos de contacto se fusionarán en un solo gesto. Para pantallas táctiles grandes es una desventaja. Para pantallas normales, donde solo hay un usuario está bien.

Pero también existe GestureWorks. Allí puede definir un nuevo gesto o usar el gesto predefinido. Los gestos se definen en un archivo XML (llamado GML). Cualquier objeto puede manejar sus propios gestos. Pero debe implementar manualmente la prueba de hit y la asignación de puntos. Pero hay un greate tutorial.

Otra biblioteca, que no he probado, es la Multi Touch SDK by PQ Lab.

Cuestiones relacionadas