2012-09-28 4 views
0

부울 값의 상태에 따라 이미지를 열에 배치합니다. 여기 테이블 열 : 이미지 만 표시

col = new TableViewerColumn(this, SWT.NONE); 
    col.getColumn().setWidth(70); 
    col.getColumn().setText("Print Status"); 
    col.setLabelProvider(new ColumnLabelProvider() { 
    @Override 
    public Image getImage(Object element) { 
    if (((AplotResultsDataModel.ResultsData) element).isSuccess()) { 
     return SUCCESS; 
    } 
    return FAIL; 
    } 
    }); 

I는 이미지를 생성하는 두 가지 방법이 시도했던 getImage 방법

private static Image getImage(String file) { 
    Bundle bundle = FrameworkUtil.getBundle(Viewer.class); 
    URL url = FileLocator.find(bundle, new Path("icons/" + file), null); 
    ImageDescriptor image = ImageDescriptor.createFromURL(url); 
    return image.createImage(); 
} 

이다. 두 경우 모두

private static final Image FAIL = getImage("failed.png"); 

그리고

final Image FAIL = new Image(Display.getDefault() ,"D:/Users/workspace/com.aplot/icons/failed.png"); 

이미지가 디스플레이를 수행하지만 옆에 텍스트 경로가있다. 경로는 해당 열의 배열 값인 것처럼 보입니다.

예 :

[이미지] [email protected]

내가 어떻게 텍스트를 제거 만 이미지를 표시 할 수 있습니까?

답변

2

ColumnLabelProvidergetText() 메서드를 재정의하고 빈 문자열을 반환합니다. 재정의하지 않으면 항상 element.toString()이 표시됩니다. 왜 거기에 데이터 객체의 toString() 값이 있는지 보려는 것입니다.

+0

getText()와 해당 열의 getImage()가 필요합니까? – jkteater

+2

항상 getText() 및 getImage()를 모두 재정의하고 표 셀에 표시 할 값을 반환하십시오. –