2012-02-10 4 views
1

SWTでドラッグするときに、カーソルの横にカスタムコントロールまたはウィジェットを表示するにはどうすればよいですか?SWTドラッグ&ドロップカスタムコントロールがカーソルの隣に表示される

ボタンまたはツリーまたはテーブルは画像ではありません。

できない場合 - どのようにイメージにそのようなボタンをレンダリングするのですか?

答えて

2

私は、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 ... 
} 
+0

リソースを 'dragFinished'に配置することを忘れないでください。 :) – GGrec

0

マウスの位置に従う装飾されていないシェルを使用し、そのシェルに表示するウィジェットを使用することができます。

関連する問題