2011-09-29 4 views
2

저는 Java 세상에서 새로운데, 제 질문이 사소한 경우 미안 해요.많은 요소로 채울 때 SWT TreeViewer가 느립니다.

Eclipse보기 파트를 개발 중이며 다음 데이터 구조로 SWT 트리 뷰를 작성하고 있습니다. 모든 데이터가 메모리에 있습니다 :

Node1 
    Child1 
    Child2 
Node2 
    Child1 
    ... 
    Child2915 

매우 큰 나무는 아니지만 그리는 속도가 느립니다 (10 초). .NET에서 10.000 개 이상의 요소로 트리를 관리하고 원활하게로드했습니다. 코드를 구현했는지 모르겠지만 BeginUpdate() - EndUpdate()을 호출하지 않으면 .NET에 같은 문제가 나타납니다.

Java/SWT에서 비슷한 것을 호출해야합니까? 나무가 왜 그렇게 느린 지에 대한 다른 정보는 없습니까? 자세한 내용은 성능

에 도움이 트리를 만들 때

답변

3

마지막으로, TreeViewer에서 refresh를 호출 한 후 setRedraw(boolean value)을 사용했습니다.

public void refresh() { 
    try { 
     mTreeViewer.getControl().setRedraw(false); 
     mTreeViewer.refresh(true); 
     mTreeViewer.expandAll(); 
    } 
    finally { 
     mTreeViewer.getControl().setRedraw(true); 
    } 
} 
5

당신은 SWT.VIRTUAL 플래그를 사용할 수 있습니다, 또한 JFace는 TreeViewer와 결합 될 수있다 Virtual Trees and Tables

이에이 문서를 참조하십시오. 자세한 내용은 JFace TreeViewer에 대한이 기사를 참조하십시오. (특히 가상 플래그는 언급하지 않지만)

관련 문제