有没有办法告诉JTable的行过滤器应该更新自身以显示过滤的数据?我当前在AbstractTableModel中使用fireTableDataChanged方法,但该表的基础数据实际上并未更改,因此这似乎很浪费。我的过滤器的工作方式是检查表中的数据是否在其他列表中,并且仅在该列表中显示它。因此其他列表发生了变化,我需要告诉过滤器刷新自身。 fireTableDataChanged是执行此操作的正确方法吗?

谢谢,
杰夫

最佳答案

fireTableDataChanged是正确的方法。

我认为“其他列表”是您数据的一部分。这意味着它应该成为表模型的一部分。因此,无论何时更改,模型都应调用fireTableDataChanged。这将达到目的。

如果您不能使其成为模型的一部分,则至少应在发生更改时通知模型,然后模型将调用fireTableDataChanged。对于通知,您可以使用标准的侦听器方法,或者如果您更喜欢全局方法,则可以使用Event Bus framework

09-28 12:01