2
我最近使用SWT編寫了一個應用程序。在其中的一個對話框中,我有幾個小部件,其中之一是Text,用於支持其他小部件的DND。我已經在同一個對話框(包括拖動源和拖放目標)上首次添加了DND對2樹部件的支持。在爲該Text小部件添加DND支持之前,我注意到在Linux平臺(gtk)上,SWT Text小部件自動獲得拖放支持。也就是說,我已經可以從其他Tree小部件拖動並放置在該Text上(在任何插入位置),並且可以從Text中選擇並拖動任何文本到其他Tree或Text小部件。對文本部件的SWT拖放支持
但是,這隻適用於Linux平臺,而不適用於Windows。同樣的程序,如果在Windows上運行,將不會對該文本部件有任何DND支持(當然,由於我專門爲它們編寫了樹部件,所以樹部件當然具有DND支持)。
因此,這裏是我想實現在Windows以及什麼:在文本小部件的任何位置
- 式文本。
- 在掉落之前和懸停時,能夠清楚地看到插入位置的位置。光標位置應該隨鼠標光標一起移動。
- 支持多線在文本窗口小部件
SOLUTION:
DropTarget target = new DropTarget(sytledText, DND.DROP_MOVE | DND.DROP_COPY);
target.setTransfer(new Transfer[] { TextTransfer.getInstance() });
target.addDropListener(new StyleTextDropTargetEffect(sytledText));
- 使用StyledText代替文本插件
- 使用StyledTextDropTargetEffect(或擴展它),並將其添加爲DR運算聽者
嗯,我確實讓自己的手髒了,爲自己創造了一個。但是,我無法解決滾動位置的問題。 事實證明StyledText已經具有類StyledTextDropTargetEffect的這種支持。直到Csaba_H提出來之前我沒有注意到它。謝謝! – bryantsai 2009-06-24 11:33:50