2016-03-14 87 views
0

我有2个相同基类型的ListView(A和B)。我需要实现的是: - 用户从A拖放项目,将它们拖放到B - 用户从B拖放项目,将它们放入B(重新排列)。JavaFX - 如何在单个节点上使用多个相同类型的事件处理程序

更改必须保存在sqlite表中。运行2个不同的sql查询,所以拖放操作必须有不同的结果。

如果我做2X B.setOnDragDropped,我可以区分2取决于拖动开始在哪里?

感谢您的帮助,很多APPRICH人

+0

找到解决办法:if(event.getGestureSource()== B){.... –

回答

1

如果调用setOnDragDropped(...)两次在同一节点上,第二个处理器将替换第一个(它是一个set方法,并以同样的方式与任何其他set方法:它设置一个属性的值)。

你需要沿着

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

线的东西你能确定处理程序中拖动源与

e.getGestureSource() 

,看看它匹配来确定行动的过程中哪一个节点。

相关问题