在SWT中拖动时,如何在光标旁边显示一些自定义控件或小部件?
像按钮或树或表不是图像。
如果不可能 - 我如何将这样的按钮渲染成图像?
答案 0 :(得分:2)
我找到了使用GC(canvas)类将任意Control(widget)渲染到Image中的方法。方法如下:
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 ...
}
答案 1 :(得分:0)
您可以使用跟随鼠标位置的未修饰Shell,并且在该Shell中具有您想要显示的窗口小部件。