Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javafx 2 JavaFX中的mousedragged:确定将另一个节点拖动到的卡节点_Javafx 2_Mouseevent - Fatal编程技术网

Javafx 2 JavaFX中的mousedragged:确定将另一个节点拖动到的卡节点

Javafx 2 JavaFX中的mousedragged:确定将另一个节点拖动到的卡节点,javafx-2,mouseevent,Javafx 2,Mouseevent,我试图通过实现一个小纸牌游戏来学习javafx。我能够通过处理鼠标按下和鼠标标记事件使卡片移动 在按下鼠标时,我存储拖动的原点,在鼠标拖动事件中,我将x和y变换应用于拖动的卡。工作就像一个魅力,没有任何延迟。(一) 我的问题是确定拖动的卡下的另一张卡(节点)。你们中有人实现过这样的s.th吗 我试图避免手动计算来检查交叉点。有一种称为“完全按下拖动释放手势”的机制。详细信息记录在MouseEvent和MouseDragEvent类中 基本上,在拖动的卡上注册一个onDragDetected事件处

我试图通过实现一个小纸牌游戏来学习javafx。我能够通过处理鼠标按下和鼠标标记事件使卡片移动

在按下鼠标时,我存储拖动的原点,在鼠标拖动事件中,我将x和y变换应用于拖动的卡。工作就像一个魅力,没有任何延迟。(一)

我的问题是确定拖动的卡下的另一张卡(节点)。你们中有人实现过这样的s.th吗


我试图避免手动计算来检查交叉点。

有一种称为“完全按下拖动释放手势”的机制。详细信息记录在MouseEvent和MouseDragEvent类中

基本上,在拖动的卡上注册一个onDragDetected事件处理程序,并在内部进行两次调用: card.startFullDrag(),用于启用传递给手势目标的MousedRageEvents setMouseTransparent()使手势目标通过拖动的节点拾取


现在,拖动事件将继续传递到卡,MousedRageEvents将传递到卡下方拾取的节点。不要忘记在手势结束后切换mouseTransparent标志。

而不是手动计算-可能是Parent.impl\u pickNode()可以帮助您。这是一种用于确定节点的方法,单击该节点。它有帮助吗?或者您的问题不同?谢谢您的回答。我可以用您的提示解决另一个问题;-)我发现,我确实需要用我的拖拽卡确定相交节点。在mousedraggedEventHandler中,我迭代每个堆栈(窗格)并检查交叉点。我只是想知道,是否有一种更优雅的方法。这个方法被标记为不推荐使用,不应该被开发人员使用,所以这是你的风险…我已经提出了一个问题,让这个方法(impl_pickNode())公开,你可以在这里跟踪这方面的进展:如果你的卡都是相同大小的(是吗?),然后相交的节点等于检查impl_pickNode,其中参数与要拖动的卡的4个角中的每个角相同。