Java 如何为TreeViewer启用滚动条

Java 如何为TreeViewer启用滚动条,java,swt,jface,Java,Swt,Jface,我需要构造一个JFace对话框,它由一个TreeViewer组成 这就是我重写createDialogArea(Composite)方法的方式: @Override protected Control createDialogArea(Composite parent) { parentComposite = (Composite) super.createDialogArea(parent); parentComposite.setLayout(new FillLayout(S

我需要构造一个JFace对话框,它由一个
TreeViewer
组成

这就是我重写
createDialogArea(Composite)
方法的方式:

@Override
protected Control createDialogArea(Composite parent)
{
    parentComposite = (Composite) super.createDialogArea(parent);
    parentComposite.setLayout(new FillLayout(SWT.HORIZONTAL));

    sc = new ScrolledComposite (parentComposite, SWT.H_SCROLL | SWT.V_SCROLL);

    composite = new Composite (sc, SWT.NONE);
    composite.setLayout(new GridLayout(1,false));
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    TreeViewer viewer = new TreeViewer(composite);

    viewer.setContentProvider(new ExplorerContentProvider(rootFolderType, shell));
    viewer.setLabelProvider(new ExplorerLabelProvider());
    viewer.setInput(rootFolderComponent);

    sc.setContent(composite);
    sc.setExpandHorizontal(true);
    sc.setExpandVertical(true);
    sc.setMinSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT)); 

    return parentComposite;

}
根据上述代码,我的观察结果如下:

我在树中有100个元素,所以我有一个外部滚动条(因为我使用了
ScrolledComposite
)。然后,如果我展开每个元素,就会为
TreeViewer
获得另一个滚动条


我可以用一个滚动条来实现这一点吗

我已经删除了ScrolledComposite,它解决了这个问题。TreeViewer本身动态处理滚动条