【问题标题】:JavaFX - How to use multiple same type of event handlers on a single nodeJavaFX - 如何在单个节点上使用多个相同类型的事件处理程序
【发布时间】:2016-03-14 22:17:18
【问题描述】:

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

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

如果我执行 2X B.setOnDragDropped,我能否根据拖动开始的位置区分 2?

感谢您的帮助,很多 apprich 人

【问题讨论】:

  • 找到了解决方案:if (event.getGestureSource() == B){....

标签: javafx drag-and-drop singular


【解决方案1】:

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

你需要一些类似的东西

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

您可以通过

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多