实现的基本思路就是:
1:设置拖拽源。 DragSource
2:为拖拽源设置 通道 Transfer
3:为拖拽源 绑定监听。DragSourceListener
public void dragSetData(DragSourceEvent event) {
// TODO Auto-generated method stub
if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
DragSource source = (DragSource) event.widget;
Label label = (Label) source.getControl();
event.data = label.getText();
}
}
DropTargetListener
if (TextTransfer.getInstance().isSupportedType(event.currentDataType)) {
String text=(String) event.data;
DropTarget target= (DropTarget) event.widget;
Label label= (Label) target.getControl();
label.setText(text);
}
基本思路就是这样,通过widget创建一个 拖拽源,然后在为拖拽源 设置一些东,
中间的数据交换是通过通道里完成了。不同的通道真的不同的类型。
跟swing 的拖拽实现思路都差不多。