Java 如何为TreeViewer启用滚动条
我需要构造一个JFace对话框,它由一个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
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本身动态处理滚动条