2010-12-12 6 views
3

우리는 SWT/JFace로 포팅 할 계획 인 Swing 응용 프로그램을 가지고 있습니다. 스윙 어플리케이션은 나무와 테이블 (아이콘은 텍스트 왼쪽)에 많은 아이콘 (javax.swing.Icon 구현)을 그립니다. 제대로 이해했다면 SWT는 이미지 (일명 그래픽 파일) 만 그릴 수 있습니다. 아이콘이나 전체 표/트리 셀을 그리는 가장 간단한 해결책은 무엇입니까? 미리 감사드립니다.SWT : 표 또는 트리 셀에 "아이콘"그리기

답변

3

이미지는 그래픽 파일에서로드하거나 메모리에 그릴 수 있습니다. 그러나이 방법의 한 가지 중요한 단점은

TableItem item = ... 
item.setImage(theImage); 

있다

:

Image image = new Image(Display.getCurrent(), width, height); 
GC gc = new GC(image); 

// draw icon using GC 

gc.dispose(); 

지금까지 테이블/나무에서 그들을 표시로, 가장 직접적인 방법은 테이블/트리 항목에 이미지를 설정하는 것입니다 : Windows에서 처음으로 테이블 항목에 이미지를 설정하면 해당 이미지의 높이가 테이블의 모든 항목에 대한 표준 높이가됩니다. 따라서 큰 이미지를 설정하면 첫 번째 이미지 크기로 축소됩니다. 작은 이미지를 설정하면 크기가 커집니다.

모든 이미지의 크기가 동일하면 문제가되지 않습니다.

그러나 미리 이미지 크기를 예측할 수없는 경우 custom draw API을 사용하여 테이블/트리 항목을 렌더링하는 것이 좋습니다. 이 접근 방식은 확실히 더 집중적이지만 결과에 대한 세분화 된 제어를 제공합니다.

+0

감사합니다. 노드를 그리기 직전에 필요에 따라 이미지를 설정할 수있는 곳이 있습니까? – Mot

+1

SWT.VIRTUAL 테이블을 사용하고 SWT.SetData 수신기를 사용하여 필요에 따라 이미지와 텍스트를 설정할 수 있습니다. – qualidafial

관련 문제