CustomLineBorderDecorator列之间的连续线

时间:2018-11-12 09:38:15

标签: nattable

我目前的任务是使用nattable在特定列之间绘制连续线。我已经使用CustomLineBorderDecorator在每个单元格上绘制了线条。问题是每行之间有一条细灰色线 在每个单元格生成的Border hat的奇异段之间可见此灰线。 我需要从页眉到表格底部的连续线。我要怎么去那儿?

order

1 个答案:

答案 0 :(得分:1)

如果要绘制网格线,则需要实现IOverlayPainterICellPainterCustomLineBorderDecorator一样只会在单元格内绘制。

一个简单的版本可能看起来像这样:

natTable.addOverlayPainter(new IOverlayPainter() {

    @Override
    public void paintOverlay(GC gc, ILayer layer) {
        Color beforeColor = gc.getForeground();
        gc.setForeground(GUIHelper.COLOR_RED);
        int gridBorderX = natTable.getStartXOfColumnPosition(4) - 1;
        gc.drawLine(gridBorderX, 0, gridBorderX, layer.getHeight() - 1);
        gc.setForeground(beforeColor);
    }
});

例如,该版本不考虑滚动。

SNAPSHOT版本包含HideIndicatorOverlayPainter,它根据标头区域内的标签进行更多检查以呈现这样的行。但是您可以调整它以找到基于标签的呈现位置。