这是我的场景:我对一个应用程序有3个视图,其中2个是相同的,除了1个东西 - 一个有额外的过滤。所有视图都使用相同的模型,因为它们以(有些)不同的方式显示相同的数据。两个相似的视图都是JTable,如下所示:
我可以为第二个视图创建过滤器,但由于两个视图都使用相同的模型(实现了TableModel),因此它们都在数据模型中调用相同的函数 - getValueAt(int rowIndex, int columnIndex)
- 目前只有在基本级别过滤。
在不影响第一个视图的情况下,另外过滤第二个视图的最简单方法是什么?我将如何实现这一目标?
提前致谢。
答案 0 :(得分:5)
Swing JTable支持在视图领域中进行过滤,只需使用它,例如(启用排序和缺少类型转换)
RowFilter basic = ..
RowFilter other = ...
RowFilter finer = Rowfilter.andFilter(basic, other);
basicTable.getRowSorter().setRowFilter(basic);
finerTable.getRowSorter().setRowFilter(finer);