可移动控件的SWT组合(拖放)

3
我正在尝试在一个带有多个可展开的SectionsScrolledForm上实现DragAndDrop功能。我应该能够在表单中移动部分内容,重新排序它们。
经过一番(很多)研究后,我发现自定义DragSourceDropTarget的传输是最好的选择。
总之,在一个Composite中如何移动Control
更新:
好吧,我的Sections不再需要可展开性。它们是不同大小的“实心”部分。这减轻了我的问题,但并没有解决它。
我尝试了各种Drag and Drop,有的带有Transfer,有的没有。万能的互联网似乎没有想过实现这样的功能。
1个回答

0

正如您所提到的,您需要实现DragSourceDropTarget。当您拖动一个control时,您实际上可以将cursor更改为实际控件的图像(查看Control.print(GC)方法以创建Image)。一旦完成拖放,您只需要更改Control的边界。(Control.setBounds (int x, int y, int width, int height) )

由于您想以自由形式布置您的Controls,我建议您不要在表单上设置任何Layout,而是手动计算并设置每个子Control的边界。


我的部分没有以任何方式实现“控件”。所以很难设置边界。我应该在部分组件上扩展复合吗? - Georgian
如果您正在使用org.eclipse.ui.forms.widgets.Section,则它会扩展Control。您可以在其上设置边界。 - sambi reddy
我在博客上发布了这篇文章,附有源代码。http://georgiangrec.wordpress.com/2013/08/11/swt-composite-drag-and-drop/ - Georgian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接