我正在尝试在 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;
}
输出
最佳答案
您只需将底线和右线向上/向右绘制 1 像素即可:
gc.drawRectangle(rect.x, rect.y, rect.width - 1, rect.height - 1);
关于java - JFace TableViewer 像 Excel 一样在单元格上绘制矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27637478/