가상 트 리 와 가상 테이블 만 들 기
2939 단어 데이터 구조
빈 나무 나 빈 시 계 를 실현 하려 면 VIRTUAL 스타일 을 사용 해 야 합 니 다.
가상 트 리 / 표 구축 에 필요 한 몇 가지 관건:
1. VIRTUAL 스타일 의 설정
분명히 이것 은 필수 적 인 것 이다. 예 를 들 어:
//
Tree tree = new Tree(composite, SWT.BORDER | SWT.VIRTUAL);
//
Table table = new Table(composite, SWT.BORDER | SWT.VIRTUAL);
2. 표 시 된 Ite m 수 설정
예 를 들 면:
table.setItemCount(COUNT);
tree.setItemCount(COUNT);
이것 도 필수 입 니 다. 아래 SetData 이벤트 에서 이 Item 수 에 따라 감청 이벤트 의 호출 횟수 를 결정 해 야 하기 때 문 입 니 다.보통 이 값 은 트 리 나 표 가 처음 표 시 될 때의 보 이 는 ite m 로 설정 합 니 다.불확실 할 때 는 표시 의 정확성 을 확보 하기 위해 적당 한 값 을 선택해 야 한다.3. SetData 감청 증가
상기 두 단계 가 완 료 된 후에 우 리 는 SWT 의 SetData 감청 사건 을 추가 하여 마지막 임 무 를 완성 해 야 한다.예 를 들 면:
tree.addListener(SWT.SetData, new Listener() {
public void handleEvent(Event event) {
……
}
}
table.addListener(SWT.SetData, new Listener() {
public void handleEvent(Event event) {
……
}
}
이 사건 은 두 가지 상황 에서 모두 호출 됩 니 다. (1) 트 리 노드 가 펼 쳐 질 때.(2) 창 이 보일 때.이 방법 은 트 리 가 표시 되 거나 하나의 노드 가 열 릴 때 하위 노드 수 를 계산 하고 각 하위 노드 의 내용 을 결정 하 는 데 사용 된다.
4. 노드 정 보 를 기록 합 니 다.
이것 은 매우 중요 하지만, 허수 / 표 자체 의 구축 에 있어 서 는 그것 의 일부분 에 속 하지 않 는 다.그래도 중요 하 다 고 생각 합 니 다.
분명히 나무 결점 이나 나무 결점 의 자 결점 을 정확하게 구축 하기 위해 우 리 는 결점 정 보 를 기록 하 는 곳 이 필요 하 다. 이 견 인 견 지 는 각자 의 방법 이 있 을 수 있다.예 를 들 어 보통 setData (Object data) 방법 으로 각 노드 의 정 보 를 기록 하고 아래 의 예 시 를 볼 수 있다.
예시
트 리 를 예 로 들 면 디 렉 터 리 구 조 를 표시 하 는 트 리:
//setData
Tree tree = new Tree(shell, SWT.VIRTUAL | SWT.BORDER);
File[] roots = File.listRoots();
tree.setData(roots);
//setItemCount
tree.setItemCount(roots.length);
//
tree.addListener(SWT.SetData, new Listener() {
public void handleEvent(Event event) {
//event
TreeItem item = (TreeItem) event.item;
TreeItem parentItem = item.getParentItem();
File file = null;
// null, ( )
if (parentItem == null) {
/* root-level item */
File[] files = (File[]) tree.getData();
file = files[event.index];
item.setText(file.toString());
}
/*
* ,
*
* index
*/
else {
File[] files = (File[]) parentItem.getData();
file = files[event.index];
item.setText(file.getName());
}
// , ,
if (file.isDirectory()) {
File[] files = file.listFiles();
if (files != null) {
item.setData(files);
item.setItemCount(files.length);
}
}
}
});
가상 트 리 / 표 에 대해 JFace 에 ILazy Tree ContentProvider 와 ILazy ContentProvider 가 있 습 니 다. 사용 방법 을 시험 해 볼 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.