是否自动从TouchEvent或MouseEvent生成JavaFX 2 Gesture事件?

时间:2013-05-28 20:46:34

标签: javafx-2 javafx-8

我正在使用Macbook,它有一个多点触控板。然后我编写了一个多点触控应用程序,其中包含一个简单的场景和一个椭圆形椭圆。我只是有以下方法。当我使用触控板对椭圆形执行双指动作时,会自动触发变焦和旋转事件。

 oval.setOnZoom(new EventHandler<ZoomEvent>() {
            @Override public void handle(ZoomEvent event) {
                oval.setScaleX(oval.getScaleX() * event.getZoomFactor());
                oval.setScaleY(oval.getScaleY() * event.getZoomFactor());
                log("Ellipse: Zoom event" +
                        ", inertia: " + event.isInertia() + 
                        ", direct: " + event.isDirect());
                event.consume();
            }
        });

        oval.setOnRotate(new EventHandler<RotateEvent>() {
            @Override public void handle(RotateEvent event) {
                oval.setRotate(oval.getRotate() + event.getAngle());
                log("Ellipse: Rotate event" +
                        ", inertia: " + event.isInertia() + 
                        ", direct: " + event.isDirect());
                event.consume();
            }
        });

然而,我编写了另一个JavaFX程序来自己生成TouchEvent(来自连接到具有ManyMice库的单个计算机的多个鼠标用于java。我将多个鼠标事件转换为TouchEvent)。 UI在空场景中再次具有相同的椭圆形。这次,当我用两只老鼠平移和旋转椭圆时,没有任何事情发生。

然后我用oval.SetOnTouchPressed和oval.SetOnTouchReleased测试椭圆是否真的收到了触摸事件。是的!!它确实!所以这意味着椭圆接收触摸事件,但这些“人为”触摸事件不会自动生成像Macbook Trackpad这样的手势事件。

我是否需要编写自己的逻辑来从TouchEvents生成Gesture事件,或者存在一些允许这种情况自动发生的方法?

0 个答案:

没有答案