我最近使用SWT编写了一个应用程序。在其中一个对话框中,我有一些小部件,其中一个是Text,旨在支持DND和其他小部件。我首先在同一个对话框中添加了对2 Tree小部件的DND支持(拖动源和放置目标)。在我为该Text小部件添加DND支持之前,我注意到在Linux平台(gtk)上,SWT Text小部件自动获得拖放支持。也就是说,我已经可以从其他树窗口小部件拖放并放在此文本上(在任何位置插入那里),以及选择并将此文本中的任何文本拖动到其他树或文本窗口小部件。
但是,这只适用于Linux平台,但不适用于Windows。如果在Windows上运行,相同的程序将不会对该Text小部件提供任何DND支持(Tree小部件当然具有DND支持,因为我专门为它们编写)。
所以这就是我想要在Windows上实现的目标:
解决方案:
DropTarget target = new DropTarget(sytledText, DND.DROP_MOVE | DND.DROP_COPY);
target.setTransfer(new Transfer[] { TextTransfer.getInstance() });
target.addDropListener(new StyleTextDropTargetEffect(sytledText));
答案 0 :(得分:3)
您可以在SWT snippets页面找到许多精彩的代码段,包括使用StyledText小部件拖放的示例。还有DND in SWT的好介绍。