java 当表水平滚动时,Nattable Display转换器会移动列

5lhxktic  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(138)

我在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);'
djmepvbi

djmepvbi1#

如果您在ViewportLayer或更高版本上应用自定义标签(在您的情况下为HEX_FORMAT),则会发生这种情况。如果你在结构上有很强的关系,你应该在DataLayer上应用标签,因为没有索引位置转换。

相关问题