swt 实现拖拽功能
实现的基本思路就是:
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 的拖拽实现思路都差不多。
?