两种方式:
1.
transfer = LocalSelectionTransfer.getTransfer();
DragSource ds = new DragSource(table, DND.DROP_MOVE);
ds.setTransfer(new Transfer[] { transfer });
ds.addDragListener(new DragSourceAdapter() {
public void dragSetData(DragSourceEvent event) {
transfer.setSelection(tableViewer.getSelection());
}
});
DropTarget table_1DropTarget = new DropTarget(table_1,DND.DROP_MOVE);
table_1DropTarget.setTransfer(new Transfer[] { transfer });
table_1DropTarget.addDropListener(new DropTargetAdapter() {
public void drop(DropTargetEvent event) {
StructuredSelection s = (StructuredSelection) event.data;
}
});
2.
tableViewer.addDragSupport(DND.DROP_MOVE, new Transfer[]{transfer}, new DragSourceAdapter(){
public void dragSetData(DragSourceEvent event) {
...
}
});
tableViewer_1.addDropSupport(DND.DROP_MOVE,new Transfer[]{transfer}, new DropTargetAdapter(){
public void drop(DropTargetEvent event) {
...
}
});
这里的Adapter和Listener区别在于,Listener要实现所有的函数,Adapter可以只选择需要的