2008-12-15 32 views

回答

9

的MT4j项目有你需要的Java开发多点触摸应用程序的一切。 所有众所周知的多点触控手势已经内置,可以像监听鼠标事件一样简单地访问 (例如:component.addGestureListener(..))。 它还具有类似于JavaFX的硬件加速场景图。 您甚至可以通过将一个或多个鼠标连接到您的机器来模拟多点触控输入。 检查出来http://www.mt4j.org

5

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

看着网站上的代码示例应该给你的框架的一个不错的主意。

+3

哎哟...真的,你必须'事件'的事件?他们不提供像processDragEvent,processZoomEvent等回调? – 2009-03-09 19:14:39

+0

据我所知,他们只支持通用的“processEvent”调用,因为您可能想要添加非框架本身的自定义手势。这提供了可扩展性,而无需修改框架代码。 – 2009-03-09 19:36:04

0

我主要从事从头开始处理和设计我的用户界面。我一直在寻找一种解决方案,它并没有规定MT4J和JavaFX似乎都在做的UI框架。而且,MT4J似乎被放弃了。

这看起来像至少一个用于Windows的有前途的解决方案,但我不能确定它实际上尚未公布: http://wiki.gestureworks.com/index.php/GestureWorksCore:Gestureworks_Core_Tutorials

这是专门为加工,跨平台的,开放源码的和积极的: https://github.com/vialab/SMT

0

MT4J如果applicatin只有一个用户,你可以使用JavaFX的不能与Windows 8

工作。触摸事件有不同的监听器。但是无法同时处理两个手势,因为所有触摸点都会合并为一个手势。对于大型多点触摸屏来说,这是一个不利之处。对于正常的屏幕,哪里只有一个用户就可以。

但也有GestureWorks。在那里你可以定义新的手势或使用预定义的手势。手势在XML文件(称为GML)中定义。任何对象都可以处理自己的手势。但是你必须手动实现hitTest和点分配。但有一个greate tutorial

另一个图书馆,我没有测试,是Multi Touch SDK by PQ Lab

相关问题