SWTでドラッグするときに、カーソルの横にカスタムコントロールまたはウィジェットを表示するにはどうすればよいですか?SWTドラッグ&ドロップカスタムコントロールがカーソルの隣に表示される
ボタンまたはツリーまたはテーブルは画像ではありません。
できない場合 - どのようにイメージにそのようなボタンをレンダリングするのですか?
SWTでドラッグするときに、カーソルの横にカスタムコントロールまたはウィジェットを表示するにはどうすればよいですか?SWTドラッグ&ドロップカスタムコントロールがカーソルの隣に表示される
ボタンまたはツリーまたはテーブルは画像ではありません。
できない場合 - どのようにイメージにそのようなボタンをレンダリングするのですか?
私は、GC(キャンバス)クラスを使用して画像に任意のコントロール(ウィジェット)を描画する方法を発見しました。方法は次のとおりです。
dragSource.addDragListener(new DragSourceListener() {
@Override
public void dragStart(DragSourceEvent dragSourceEvent) {
// getting control widget - Composite in this case
Composite composite = (Composite) ((DragSource) dragSourceEvent.getSource()).getControl();
// Getting dimensions of this widget
Point compositeSize = composite.getSize();
// creating new GC
GC gc = new GC(composite);
// Creating new Image
Image image = new Image(Display.getCurrent(),compositeSize.x,compositeSize.y);
// Rendering widget to image
gc.copyArea(image,0,0);
// Setting widget to DnD image
dragSourceEvent.image = image;
}
... other overriden methods ...
}
マウスの位置に従う装飾されていないシェルを使用し、そのシェルに表示するウィジェットを使用することができます。
リソースを 'dragFinished'に配置することを忘れないでください。 :) – GGrec