2016-02-11 24 views
1

如何实现dbl点击javafx?如何在double上实现缩放在javafx中单击?

我有一个场景(有许多组件),我想让它拖动以及双击可放大。我如何实现这种动态行为? 我已经使用了给定的解决方案,但他们没有帮助 当我拖动两次然后双击事件获取触发器。我不想要。

一些示例代码将不胜感激。

+0

@Adam问题是在两种情况下调用的鼠标释放事件。那么如何在发布中识别它是双击发布还是单击发布。 –

+0

您是否在检查双击之前尝试检查鼠标事件是否是DRAG_DETECTED事件? – Miles

+0

@Miles它似乎工作我会用最终的代码更新一次完成。 –

回答

0

您可以添加一个等待时间,在单击的拖动开始之前。

  • 布尔值,指定是否双击发生

  • 在拖/放:设定布尔假

  • 在拖/放:检查布尔
  • 上拖动之前等待指定的毫秒/ drop:检查布尔值是否为false - >继续

  • 双击:设置布尔值true

这应该工作吗?

编辑:在拖/放:检查布尔之前等待指定的毫秒 - 这基本上是您定义为双击仍然是双击,而不是两个单独的点击

延迟

EDIT2:米莱对评论在这种情况下,这个问题似乎是更好的办法。

+0

你的答案即将实现我想要但不完全。最好的部分是基于两次点击之间的拖动,点击和时间跨度来检测和管理鼠标释放事件(如果未拖动它)。 –

0

尝试此代码进行双击。

myPane.setOnMouseClicked(new EventHandler<MouseEvent>() { 
     @Override 
     public void handle(MouseEvent mouseEvent) { 
      if(mouseEvent.getButton().equals(MouseButton.PRIMARY)){ 
       if(mouseEvent.getClickCount() == 2){ 
        //Write zooming logic here. 
       } 
      } 
     } 
    }); 

我希望它能帮到你。