1

我有一个Label包裹在POJO中。所有外部操作都委托给标签。

我(在内部)将 a 挂钩DragSource到所述Label. 转移是LocalSelectionTransfer

实施DragSourceAdapter

@Override public void dragSetData(DragSourceEvent e)
{
      transfer.setSelection(new StructuredSelection(this)); // *this* is the POJO wrapper
}

问题

在放置事件(外部)上,如果我这样做

final Object newObj = ((StructuredSelection) transfer.getSelection()).getFirstElement();

newObj 将是POJO$1, 或POJO$2等等。

什么原因?为什么我没有得到一个instanceof POJO

4

1 回答 1

1

正如您所说,new StructuredSelection(this)在 的实现内部,DragSourceAdapter实现this(您的“POJO”的匿名内部类)而不是 POJO 本身也是如此!相反,您需要new StructuredSelection(POJO.this)引用外部实例(显然,替换POJO为您的类的实际名称)。

顺便说一句,但我不会将与 GUI 直接相关的类称为“POJO”。

于 2013-08-08T10:50:20.413 回答