【问题标题】:What is the correct way to dynamically change columns and data model in nattable?在 nattable 中动态更改列和数据模型的正确方法是什么?
【发布时间】:2025-11-23 02:45:01
【问题描述】:

改变natTable的列数和行数时 清除DataProvider的列列表后,新建一个列项,更改columnPropertyAccessor的列项列表。 然后,将新的数据模型放入过滤器列表并刷新。

7列的nattable被排序(升序或降序)点击时,会变成同上不同的数据模型(4列),但是如果是排序的, "CurrentModificationException”和“IndezxOutOfBoundException”发生。 如果您交换数据模型而不进行排序,则没有问题。 我不知道是哪个部分造成的。

更改数据模型时我替换过滤器列表的方式是否错误? 如果有人遇到过类似的错误并解决了,请帮忙。

【问题讨论】:

    标签: java eclipse eclipse-plugin nattable


    【解决方案1】:

    嗯,你没有表现出你是如何做事的,所以我不能告诉任何细节。但要回答你的问题,是的,我认为你做错了。

    简而言之,如果您根据诸如排序或过滤之类的列应用了状态,并且您更改了基础数据结构,那么随着状态不再与结构匹配,事情就会中断。不知道为什么你认为这应该自动工作。

    如果更改底层数据结构,则需要提前清除基于结构的状态。

    NatTable 示例应用程序中有一个示例显示如何动态更改数据提供者。不确定该示例是否涵盖了状态清除,或者当您正确执行操作时是否会自动处理。

    【讨论】:

      最近更新 更多