Java SWT中dragEnter时如何获取源组件
How to get the source component during dragEnter in Java SWT
我想创建以下工作流程:
- 有两种盒子(A 和 B)和两种篮子(C 和 D)。
- 两种类型的框都可以拖放到基础 C 中。
- 但是在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
和其他事件中使用它来进行评估。
我想创建以下工作流程:
- 有两种盒子(A 和 B)和两种篮子(C 和 D)。
- 两种类型的框都可以拖放到基础 C 中。
- 但是在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
和其他事件中使用它来进行评估。