Java SWT中dragEnter时如何获取源组件

How to get the source component during dragEnter in Java SWT

我想创建以下工作流程:

  1. 有两种盒子(A 和 B)和两种篮子(C 和 D)。
  2. 两种类型的框都可以拖放到基础 C 中。
  3. 但是在D中只能拖放A类型的盒子

我想在 DropTargetListener 的 dragEnter 事件中检测框的类型(A 或 B),以便我可以将光标更改为 DROP_NONE。

但现在我所能做的就是在实际掉落事件中检测到它,如果它与篮子不兼容则将其丢弃。

请指导我如何解决这个问题。

注意:我正在使用 SWT org.eclipse.swt.dnd 框架。

片段:

我想做这样的事情:

public void dragEnter (DropTargetEvent e)
{
    Box b = e.getSource // this is the part I need help with

    if(b.type == 'B')
       e.detail = DROP_NONE;
}

您可以创建一个静态变量来保存当前的拖动源。 您在 dragStart 中设置它并在 dragFinished 中设置为空。 然后在 dragEnter 和其他事件中使用它来进行评估。