我目前的任务是使用nattable在特定列之间绘制连续线。我已经使用CustomLineBorderDecorator在每个单元格上绘制了线条。问题是每行之间有一条细灰色线 在每个单元格生成的Border hat的奇异段之间可见此灰线。 我需要从页眉到表格底部的连续线。我要怎么去那儿?
答案 0 :(得分:1)
如果要绘制网格线,则需要实现IOverlayPainter
。 ICellPainter
像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
,它根据标头区域内的标签进行更多检查以呈现这样的行。但是您可以调整它以找到基于标签的呈现位置。