JFace TableViewer在像Excel这样的单元格上绘制一个矩形

时间:2014-12-24 13:12:19

标签: 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.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

3 个答案:

答案 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