JTable过滤问题

时间:2012-02-26 12:00:19

标签: java swing jtable filtering tablemodel

这是我的场景:我对一个应用程序有3个视图,其中2个是相同的,除了1个东西 - 一个有额外的过滤。所有视图都使用相同的模型,因为它们以(有些)不同的方式显示相同的数据。两个相似的视图都是JTable,如下所示:

  • 在基本级别上查看1过滤结果
  • 查看2(应该)首先在同一基本级别以及更细粒度的级别上进行过滤

我可以为第二个视图创建过滤器,但由于两个视图都使用相同的模型(实现了TableModel),因此它们都在数据模型中调用相同的函数 - getValueAt(int rowIndex, int columnIndex) - 目前只有在基本级别过滤。

在不影响第一个视图的情况下,另外过滤第二个视图的最简单方法是什么?我将如何实现这一目标?

提前致谢。

1 个答案:

答案 0 :(得分:5)

Swing JTable支持在视图领域中进行过滤,只需使用它,例如(启用排序和缺少类型转换)

 RowFilter basic = ..
 RowFilter other = ...
 RowFilter finer = Rowfilter.andFilter(basic, other);

 basicTable.getRowSorter().setRowFilter(basic);
 finerTable.getRowSorter().setRowFilter(finer);