2016-03-14 85 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() 

,看看它匹配來確定行動的過程中哪一個節點。

相關問題