2011-12-01 64 views
1

我的对话框有两个TreeViewer组件。垂直滚动条必须同步。 我试过setSelectionsetTopItem方法,但两者对其他树都没有影响。滚动TreeViewer树SWT

xViewerLeft = createXViewer(leftComposite, this); 
xViewerRight = createXViewer(rightComposite, this); 

xViewerLeft.getTree().getVerticalBar().addListener(SWT.Selection, new Listener() { 
    @Override public void handleEvent(Event arg0) { 
    //xViewerRight.getTree().setSelection(xViewerLeft.getTree().getSelection()); 
    //xViewerRight.getTree().setTopItem(xViewerLeft.getTree().getTopItem()); 
    } 
}); 

任何想法?

+0

什么是'xViewerLeft'和'xViewerRight'? – CodyBugstein

回答

-2

解决办法:

vBar1.addListener(SWT.Selection, new Listener() { 
     @Override public void handleEvent(Event arg0) { 
     double y = vBar1.getSelection()*xViewerRight.getTree().view.bounds().height/100; 
     NSPoint nsPoint = new NSPoint(); 
     nsPoint.x = 0; 
     nsPoint.y = y; 
     xViewerRight.getTree().view.scrollPoint(nsPoint); 
     } 
    }); 
+0

什么是NSPoint? – CodyBugstein

+1

@Imray它是MAC操作系统特定的类,我asume可以使用Point而不是 –

+0

THanks。我的印象是SWT在所有系统中都可以工作。你能告诉我什么是'xViewerLeft'和'xViewerRight'? – CodyBugstein