Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/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中,当按下鼠标并进入节点时触发事件_Java_User Interface_Javafx - Fatal编程技术网

在JavaFX中,当按下鼠标并进入节点时触发事件

在JavaFX中,当按下鼠标并进入节点时触发事件,java,user-interface,javafx,Java,User Interface,Javafx,在JavaFX中,当鼠标进入节点并按下主按钮时,如何触发事件?此处输入的鼠标不起作用,因为按下鼠标按钮时不会触发事件。我是JavaFX新手,在谷歌上找不到任何有用的东西。鼠标输入的事件不会被触发,因为点击+移动算是拖动。但是,鼠标拖动事件仅在拖动源上触发。因此,我能想到的实现这一点的唯一方法是聆听场景中的拖动事件,并根据您的标准进行过滤: 按钮按钮=新按钮(“MyButton”); StackPane sp=新的StackPane(按钮); 场景=新场景(sp,600600); scene.se

在JavaFX中,当鼠标进入节点并按下主按钮时,如何触发事件?此处输入的鼠标不起作用,因为按下鼠标按钮时不会触发事件。我是JavaFX新手,在谷歌上找不到任何有用的东西。

鼠标输入的
事件不会被触发,因为点击+移动算是拖动。但是,鼠标拖动事件仅在拖动源上触发。因此,我能想到的实现这一点的唯一方法是聆听场景中的拖动事件,并根据您的标准进行过滤:

按钮按钮=新按钮(“MyButton”);
StackPane sp=新的StackPane(按钮);
场景=新场景(sp,600600);
scene.setonMouseDrawed(ev->{
如果(ev.getButton()!=MouseButton.PRIMARY)返回;
如果(ev.getPickResult().getIntersectedNode()!=button&&!button.getChildrenUnmodifiable().contains(ev.getPickResult().getIntersectedNode())返回;
System.out.println(“鼠标按钮按下时悬停在按钮上方!”);
});
getPickResult().getIntersectedNode()
返回拖动当前与之相交的节点。但是,根据拖动的位置,这将不是按钮,而是按钮上的文本。这就是为什么我也包括孩子们


总的来说,这似乎有点骇人,但应该可以做到。

阅读的Javadoc中描述的各种“手势”。根据您的描述,听起来您需要“完全按下拖动释放”手势。如果OP启动“完全按下拖动释放”手势,则可以将鼠标事件发送到源以外的节点。有关更多信息,请参阅。这是正确的,但听起来他不是这么要求的。