我正在尝试在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;
}
输出
答案 0 :(得分:2)
您只需向右/向右绘制1个像素的右下角:
gc.drawRectangle(rect.x, rect.y, rect.width - 1, rect.height - 1);
答案 1 :(得分:0)
从外观上看,绘制的矩形与单元格一样大,因此它不适合它。
我会尝试以下列方式绘图:
gc.drawRectangle(rect.x, rect.y, rect.width-1, rect.height-1);
答案 2 :(得分:0)
如果您想要更多类似Excel的功能,为什么不使用它 NatTable?