/ / So aktivieren Sie die Bildlaufleiste für TreeViewer - java, swt, jface

Wie Scrollleiste für TreeViewer aktivieren - java, swt, jface

Ich muss einen JFace-Dialog erstellen, der aus einem besteht TreeViewer.

So habe ich das übergangen createDialogArea(Composite) Methode:

@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;

}

Mit dem obigen Code ist dies meine Beobachtung:

Ich habe 100 Elemente im Baum, also habe ich eine äußere Bildlaufleiste (seit ich verwendet habe) ScrolledComposite). Wenn ich dann jedes Element erweitere, bekomme ich eine weitere Bildlaufleiste für TreeViewer.

Kann ich dies mit einer einzigen Bildlaufleiste erreichen?

Antworten:

0 für die Antwort № 1

Ich habe das ScrolledComposite entfernt und das Problem wurde behoben. TreeViewer selbst behandelt die Bildlaufleisten dynamisch.