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

时间:2008-12-15 18:38:46

标签: java touch multi-touch

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

5 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:5)

我上次调查多点触控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);

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

答案 2 :(得分:1)

答案 3 :(得分:0)

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

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

这适用于Processing,跨平台,开源和活动: https://github.com/vialab/SMT

答案 4 :(得分:0)

MT4J 不适用于Windows 8.

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

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

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