1

私はPOJOLabelに包まれています。すべての外部操作はラベルに委任されます。

私は(内部的に) aDragSourceを 上記の にフックし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 に答える