CustomLine Border Decorator 列之间的连续线
CustomLineBorderDecorator Continous Line between columns
我目前正忙于使用 nattable 在特定列之间绘制一条连续线。我用 CustomLineBorderDecorator 在每个单元格上绘制了线条。问题是每行之间有一条灰色细线
这条灰线在每个单元格生成的边界帽的奇异部分之间可见。
我需要从页眉到 table 底部的连续行。我如何到那里?
如果要绘制网格线,则需要实现 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
,它会根据 header 区域内的标签进行更多检查以呈现此类线条。但是您可以调整它以找到基于渲染标签的位置。
我目前正忙于使用 nattable 在特定列之间绘制一条连续线。我用 CustomLineBorderDecorator 在每个单元格上绘制了线条。问题是每行之间有一条灰色细线 这条灰线在每个单元格生成的边界帽的奇异部分之间可见。 我需要从页眉到 table 底部的连续行。我如何到那里?
如果要绘制网格线,则需要实现 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
,它会根据 header 区域内的标签进行更多检查以呈现此类线条。但是您可以调整它以找到基于渲染标签的位置。