我在Nattable的一些列上使用了自定义的DisplayConverter。这个DisplayConverter将长值显示为十六进制字符串。每当我水平滚动我的Nattable时,这个转换器会移动一列/多列。这将导致列中的十六进制值以默认数字格式显示。另一方面,应该显示数字的列显示十六进制值。在下面的图像中,第一个图像显示了它应该如何显示,即第2列和第7列应该显示十六进制值(这些只是应用了我的自定义转换器的长值)。当我向右滚动表时,这个转换器将应用于第3列和第8列。
Default (as it should be)
Scrolled right
我已将CustomDisplayConverter(列覆盖HEX_FORMAT)应用于某些列。LinkerMapHexAddressDisplayConverter是一个自定义的显示转换器,它可以将长值转换为十六进制字符串进行显示。
'columnLabelAccumulator.registerColumnOverrides(
pnames.indexOf(ILinkerMapConstants.PROP_KEY_SECTION_SIZE), NUMBER_FORMAT);//column 3
columnLabelAccumulator.registerColumnOverrides(
pnames.indexOf(ILinkerMapConstants.PROP_KEY_OBJECT_SIZE), NUMBER_FORMAT);//column 8
configRegistry.registerConfigAttribute(CellConfigAttributes.DISPLAY_CONVERTER,
new DefaultLongDisplayConverter(), DisplayMode.NORMAL, NUMBER_FORMAT);
columnLabelAccumulator.registerColumnOverrides(
pnames.indexOf(ILinkerMapConstants.PROP_KEY_SECTION_ADDRESS), HEX_FORMAT);//column 2
columnLabelAccumulator.registerColumnOverrides(
pnames.indexOf(ILinkerMapConstants.PROP_KEY_OBJECT_MODULE_ADDRESS),
HEX_FORMAT);//column 7
configRegistry.registerConfigAttribute(CellConfigAttributes.DISPLAY_CONVERTER,
new LinkerMapHexAddressDisplayConverter(), DisplayMode.NORMAL,
HEX_FORMAT);'
1条答案
按热度按时间djmepvbi1#
如果您在
ViewportLayer
或更高版本上应用自定义标签(在您的情况下为HEX_FORMAT
),则会发生这种情况。如果你在结构上有很强的关系,你应该在DataLayer
上应用标签,因为没有索引位置转换。