如何用Java开发多点触控应用程序?

预计多点触控界面变得越来越普遍的日子,Java中的库是否可以用于开发触摸应用程序? 我正在寻找类似于MouseListener / MouseMotionListener / MouseWheelListener的接口。

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

从我上次调查多点触控java解决方案开始, Sparsh仍然在我的书签中。

虽然不像典型的鼠标监听器或点击监听器那样直截了当,但它仍然提供了合理的界面。

您需要您的监听类来实现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); 

查看网站上的代码示例应该会让您对框架有一个很好的了解。

怎么样: http : //kenai.com/projects/macmultitouch

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

这看起来像是一个很有前途的解决方案,至少对于Windows而言我不确定它是否真的已经发布了: http : //wiki.gestureworks.com/index.php/GestureWorksCore : Gestureworks_Core_Tutorials

这是专门针对Processing,跨平台,开源和活动的: https : //github.com/vialab/SMT

MT4J不适用于Windows 8。

如果应用程序仅适用于一个用户,则可以使用JavaFX 。 触摸事件有不同的听众。 但是不可能同时处理两个手势,因为所有触摸点将合并为一个手势。 对于大型多点触摸屏来说,这是一种不足之处。 对于普通屏幕,其中只有一个用户可以。

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

我没有测试的另一个库是PQ Lab的Multi Touch SDK 。