Java JFace TableViewer在单元格上绘制一个矩形,如Excel

Java JFace TableViewer在单元格上绘制一个矩形,如Excel,java,eclipse-plugin,swt,eclipse-rcp,jface,Java,Eclipse Plugin,Swt,Eclipse Rcp,Jface,我试图在TableViewer中实现类似Excel的功能,以便在高亮显示的单元格中绘制矩形。下面是做这项工作的代码片段,但它不能完全工作,因为只有左边缘和上边缘被绘制,我无法理解为什么底部和右边缘被遗漏 代码段: private void markFocusedCell(Event event, ViewerCell cell) { GC gc = event.gc; event.gc.setAlpha(200); event.gc.setFor

我试图在
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);

从外观上看,绘制的矩形与单元格一样大,因此,它不适合放在其中

我会尝试用以下方式绘画:


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

如果您想要更多类似Excel的功能,为什么不使用 ?