JavaFX - 如何在单个节点上使用多个相同类型的事件处理程序

JavaFX - How to use multiple same type of event handlers on a single node

我有 2 个基本类型相同的 ListView(A 和 B)。我需要实现的是: - 用户将项目从 A 拖放到 B 中 - 用户从 B 拖动项目,将它们放入 B(重新排列)。

更改必须保存在 sql 站点 table 中。 2 次不同的 sql 查询运行,因此拖放必须有不同的结果。

如果我做 2X B.setOnDragDropped,我可以根据拖动开始的位置来区分 2 吗?

感谢各位大侠的帮助

如果您在同一个节点上调用 setOnDragDropped(...) 两次,第二个处理程序将替换第一个处理程序(这是一个 set 方法,并且与任何其他处理程序的工作方式相同 set方法:设置a的值属性).

你需要一些类似

的东西
listViewB.addEventHandler(DragEvent.DRAG_DROPPED, e -> {
    // handler code here...
});

您可以使用

确定处理程序内部的拖动源
    e.getGestureSource()

并查看它与哪个节点匹配以确定操作过程。