JTable行过滤器更新

Jef*_*rey 2 java swing jtable filter

有没有办法告诉JTable的行过滤器它应该更新自己以显示过滤后的数据?我目前正在使用AbstractTableModel中的fireTableDataChanged方法,但该表的基础数据实际上并没有改变,所以这似乎可能是浪费.我的过滤器的工作方式是检查表中的数据是否在其他列表中,只有在该列表中才显示.所以其他列表已更改,我需要告诉过滤器刷新自己.fireTableDataChanged是否有正确的方法来执行此操作?

谢谢,杰夫

Eug*_*kov 7

fireTableDataChanged 这是一种正确的方法.

我会认为"其他列表"是您数据的一部分.这意味着它应该是您的表模型的一部分.所以每当它改变时,模型应该调用fireTableDataChanged.这样就可以了.

如果你不能使它成为模型的一部分,它至少应该在发生变化时通知模型然后模型将调用fireTableDataChanged.对于通知,您可以使用标准侦听器方法,或者如果您更喜欢全局方法,则Event Bus框架 可以提供帮助.