JAVA SWT中toolbar中的toolitem拖动问题 200
现在贴上部分代码。。。。
toolBar = new ToolBar(sashForm, SWT.FLAT | SWT.WRAP | SWT.RIGHT | SWT.SHADOW_OUT);
toolBar_1 = new ToolBar(sashForm_1, SWT.FLAT | SWT.WRAP | SWT.RIGHT | SWT.SHADOW_OUT);
for(int i=0;i<root.nodeCount();i++){
tltmT = new ToolItem(toolBar, SWT.NONE);
tltmT.setToolTipText(values[1]);
tltmT.setData(values[1],node);
tltmT.setImage(ResourceManager.getPluginImage("MPCM_JAVA", values[3]));
}
求贴出拖动时的关键代码。。。。难道真没人能解决吗? 展开
2013-07-22
我只知道 jface里有 这个个事件, 这个包是在SWT里的 估计也可以用,TableViewer不是 SWT的 ,但估计 也有类似的 东西
TableViewer tt = new TableViewer(groups[i], SWT.FULL_SELECTION
| SWT.BORDER);
tt.addDropSupport(DND.DROP_MOVE, new Transfer[] { TextTransfer.getInstance() },(DropTargetListener) dtl);
tt.addDragSupport(DND.DROP_MOVE, new Transfer[] { TextTransfer.getInstance() },(DragSourceListener) dsl);
大概是 加这两个事件的监听,后面的是 用来转换数据的
找到个 参考 http://www.eclipse.org/articles/Article-SWT-DND/DND-in-SWT.html我写这个已经是很久以前的事了,记不太清了了 主要是 要实现 DropTargetListener 和 DragSourceListener
主要是实现 drop方法 和dragFinished 看文档应该不难
public class DTL implements DropTargetListener{
public DTL() {
// TODO Auto-generated constructor stub
}
@Override
public void dragEnter(DropTargetEvent event) {
// TODO Auto-generated method stub
//
}
@Override
public void dragLeave(DropTargetEvent event) {
// TODO Auto-generated method stub
//
}
@Override
public void dragOperationChanged(DropTargetEvent event) {
// TODO Auto-generated method stub
}
@Override
public void dragOver(DropTargetEvent event) {
// TODO Auto-generated method stub
}
@Override
public void drop(DropTargetEvent event) {
// TODO Auto-generated method stub
}
@Override
public void dropAccept(DropTargetEvent event) {
// TODO Auto-generated method stub
}
}
我试过这个方法,但是老是无法执行成功,我不知道是不是我代码哪里写的有问题,这个方法要求你的那个TT必须是一个control,但是toolitem却不是一个control。你可以试试,反正也不是很复杂。
能用 getControl() 方法么,我记得不是直接给 toolitem 加监听,是给他们的 上层,我是 一个tableview,拖动里面的 行(很久没弄现在都不知道那是什么了)
应该给
ToolBar
或者再上层加监听