2

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

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

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

在不影响第一个视图的情况下额外过滤第二个视图的最简单方法是什么?我将如何实施呢?

提前致谢。

4

1 回答 1

6

Swing JTable 支持开箱即用的视图域中的过滤,只需使用它,例如(启用排序和缺少类型转换)

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

 basicTable.getRowSorter().setRowFilter(basic);
 finerTable.getRowSorter().setRowFilter(finer);
于 2012-02-26T12:09:15.150 回答