2014-12-24 3 views
0

TableViewer에있는 Excel과 같은 기능을 구현하여 강조 표시된 셀에 사각형을 그려야합니다. 아래 코드 조각은이 작업을 수행하지만 왼쪽 가장자리와 위쪽 가장자리가 그려지기 때문에 완벽하게 작동하지 않으며 아래쪽 가장자리와 오른쪽 가장자리가 누락 된 이유를 이해할 수 없습니다.JFace TableViewer는 Excel과 같이 셀에 사각형을 그립니다.

코드 스 니펫 :

private void markFocusedCell(Event event, ViewerCell cell) { 
     GC gc = event.gc; 

     event.gc.setAlpha(200); 
     event.gc.setForeground(event.display.getSystemColor(SWT.COLOR_RED)); 

     Rectangle rect = cell.getBounds(); 

     gc.drawRectangle(rect.x, rect.y, rect.width, rect.height); 
     event.gc.setForeground(event.display.getSystemColor(SWT.COLOR_BLACK)); 

     event.detail &= ~SWT.SELECTED; 
    } 

출력

enter image description here

당신은 하단과 오른쪽 라인을 그릴 필요

답변

0

으로 그것의 모습, 그려진 사각형은 셀만큼 커야하며, therefo 다시, 그것 안에 들어 가지 않습니다.

나는 다음과 같은 방법으로 그리기 시도 할 것이다 :

gc.drawRectangle(rect.x, rect.y, rect.width-1, rect.height-1);

2

1 픽셀 위/오른쪽 :

gc.drawRectangle(rect.x, rect.y, rect.width - 1, rect.height - 1); 
+0

하하, 빨리 하나, 당신 :) –

0

당신은 엑셀 기능과 같은 더 원하는 경우, 당신은 왜 NatTable를 사용하지 않는?