2014-10-13 1 views
0

TreeViewer으로 구성된 JFace 대화 상자를 구성해야합니다.TreeViewer에서 스크롤 막대를 사용하는 방법

이 내가 createDialogArea(Composite) 방법 오버라이드 (override) 한 방법이다 : 나는 트리에서 100 개 요소가

, 그래서 나는 (외부 스크롤 막대를 가지고 위의 코드와

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

} 

이 내 관측이다 내가 ScrolledComposite을 사용했기 때문에). 그런 다음 각 요소를 확장하면 TreeViewer에 대한 다른 스크롤 막대가 생깁니다.

하나의 스크롤바로이 문제를 해결할 수 있습니까?

답변

0

ScrolledComposite를 제거했으며 문제가 해결되었습니다. TreeViewer 자체가 스크롤 막대를 동적으로 처리합니다.