Java SWT对文本小部件的拖放支持
我最近使用SWT编写了一个应用程序。在它的一个对话框中,我有几个小部件,其中一个是文本,它被设计为与其他小部件一起支持DND。我首先在同一个对话框中添加了对两个树小部件的DND支持(拖放源和拖放目标)。在为该文本小部件添加DND支持之前,我注意到在Linux平台(gtk)上,SWT文本小部件自动获得拖放支持。也就是说,我已经可以从其他树小部件中拖动并放置此文本(插入到此处的任何位置),以及选择并将此文本中的任何文本拖动到其他树或文本小部件中 然而,这只适用于Linux平台,而不适用于Windows。同样的程序,如果在Windows上运行,将不会对文本小部件有任何DND支持(树小部件当然有DND支持,因为我是专门为它们编写的) 下面是我想在Windows上实现的目标:Java SWT对文本小部件的拖放支持,java,swt,drag-and-drop,Java,Swt,Drag And Drop,我最近使用SWT编写了一个应用程序。在它的一个对话框中,我有几个小部件,其中一个是文本,它被设计为与其他小部件一起支持DND。我首先在同一个对话框中添加了对两个树小部件的DND支持(拖放源和拖放目标)。在为该文本小部件添加DND支持之前,我注意到在Linux平台(gtk)上,SWT文本小部件自动获得拖放支持。也就是说,我已经可以从其他树小部件中拖动并放置此文本(插入到此处的任何位置),以及选择并将此文本中的任何文本拖动到其他树或文本小部件中 然而,这只适用于Linux平台,而不适用于Window
DropTarget target = new DropTarget(sytledText, DND.DROP_MOVE | DND.DROP_COPY);
target.setTransfer(new Transfer[] { TextTransfer.getInstance() });
target.addDropListener(new StyleTextDropTargetEffect(sytledText));
您可以在页面上找到许多很棒的代码片段,包括使用StyledText小部件进行拖放的示例。还有一个很好的介绍。嗯,我确实弄脏了我的手,为自己做了一个。但是,我无法解决滚动位置的问题。事实证明,StyledText已经通过StyledTextDropTargetEffect类提供了这种支持。直到克萨巴提出来我才注意到。谢谢StyledText的主要优点是方法#insert(String),它将给定字符串设置为当前选定的文本/鼠标位置。文本小部件没有这样的方法。(写这篇文章是因为我第一次想知道StyledText的好处是什么)。你要走正确的路,tho。