如何在javafx中实现双击缩放? [复制]
Posted
技术标签:
【中文标题】如何在javafx中实现双击缩放? [复制]【英文标题】:How to implement zoom on double Click in javafx? [duplicate] 【发布时间】:2016-05-22 03:54:44 【问题描述】:如何实现dbl点击javafx?
我有一个场景(有很多组件),我想让它能够拖动以及双击放大。我怎样才能实现这种动态行为? 我已经使用了给定的解决方案,但它们没有帮助 当我拖动两次时,双击事件触发。我不想要的。
一些示例代码将不胜感激。
【问题讨论】:
@Adam 问题是鼠标释放事件在这两种情况下都会被调用。那么如何在发布中识别是双击发布还是单击发布。 在检查双击之前,您是否尝试过检查鼠标事件是否为 DRAG_DETECTED 事件? @Miles 它似乎可以工作,一旦完成,我将使用最终代码进行更新。 @Miles 你节省了我的时间。谢谢。 @AdamKortylewicz 如何复制。只是因为它包含 dbl click。 【参考方案1】:您可以在单击拖动开始之前添加等待时间。
指定是否发生双击的布尔值
拖放时:将布尔值设置为 false
拖放时:在检查布尔值之前等待指定的毫秒数拖放时:检查布尔值是否为假 -> 继续
双击:设置布尔真
应该可以吗?
编辑:拖放时:在检查布尔值之前等待指定的毫秒 - 这基本上是您定义为双击仍然是双击而不是两次单独单击的延迟
Edit2:在这种情况下,迈尔对该问题的评论似乎是一种更好的方法。
【讨论】:
你的答案接近实现我想要的,但不完全。最好的部分是根据拖动、单击和两次单击之间的时间跨度(如果未拖动)来检测和管理鼠标释放事件。【参考方案2】:试试这个代码双击。
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.
);
希望对你有帮助。
【讨论】:
以上是关于如何在javafx中实现双击缩放? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
iPhone,MPMoviePlayerController双击屏幕时如何禁用缩放?