CustomLine Border Decorator 列之间的连续线

CustomLineBorderDecorator Continous Line between columns

我目前正忙于使用 nattable 在特定列之间绘制一条连续线。我用 CustomLineBorderDecorator 在每个单元格上绘制了线条。问题是每行之间有一条灰色细线 这条灰线在每个单元格生成的边界帽的奇异部分之间可见。 我需要从页眉到 table 底部的连续行。我如何到那里?

如果要绘制网格线,则需要实现 IOverlayPainterICellPainter 就像 CustomLineBorderDecorator 只会在单元格内绘制。

一个简单的版本可能是这样的:

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,它会根据 header 区域内的标签进行更多检查以呈现此类线条。但是您可以调整它以找到基于渲染标签的位置。