Java 如何在JTable中隐藏行?

Java 如何在JTable中隐藏行?,java,swing,jtable,Java,Swing,Jtable,我正在Windows7Pro上使用EclipseIndigoSR1和JDK1.7。 我已经编写了一个基于Swing的桌面应用程序 我的应用程序包括一个JTable;它显示许多T类型的记录,每个记录一行。 表模型指向Vector vect,名为vect,包含JTable中要显示的所有数据 该应用程序包括一个名为sele的组合,显示三个值:0、1、2 当sele=0时,vect的每条记录必须在JTable中可见 当sele=1时,JTable必须仅显示具有奇数行索引的vect记录,且具有偶数行索引的

我正在Windows7Pro上使用EclipseIndigoSR1和JDK1.7。 我已经编写了一个基于Swing的桌面应用程序

我的应用程序包括一个JTable;它显示许多T类型的记录,每个记录一行。 表模型指向Vector vect,名为vect,包含JTable中要显示的所有数据

该应用程序包括一个名为sele的组合,显示三个值:0、1、2

当sele=0时,vect的每条记录必须在JTable中可见

当sele=1时,JTable必须仅显示具有奇数行索引的vect记录,且具有偶数行索引的所有记录不得可见。反之,当sele=2时

因此,我的问题是:如何使一行在JTable中不可见? 我不能使用表模型,因为它指向包含“all”数据的vect

我尝试了一个表格单元格渲染器,但似乎可以设置单元格的颜色,但不能将其设置为不可见或修改其大小

我尝试了另一种方法:如果r是行索引,并且我希望该行不可见,我将写入table.setRowHeight(r,0),但此指令引发异常,高度不能设置为零

我可以通过拆分数据,将vect一分为二来解决这个问题,但我不喜欢这样

有人有主意吗

thanx提前, 威廉

PS:有人告诉我创建一个过滤TableModel来包装现有的TableModel。过滤模型将对过滤条件敏感,并在过滤器更改时触发适当的方法(TableDataChanged)。getRowCount方法将返回过滤后的计数。getValueAt方法将过滤的行映射到基础TableModel中的实际行

Mah,也许这是个好主意,但坦率地说,我不能理解它…

使用a-这是:

RowSorter的一种实现,它使用TableModel提供排序和筛选

有关更多信息,请参阅&尤其是。

使用a-即:

RowSorter的一种实现,它使用TableModel提供排序和筛选


有关更多信息,请参阅&尤其是。

过滤是一个好主意,或者您也可以实现3种不同的模型。您是否选中此选项:JTable支持开箱即用过滤,只需使用它过滤是一个好主意,或者您还可以实现3种不同的模型。您是否选中此选项:JTable支持开箱即用过滤,只需将其+1用于基本内容,另一种方式可以直接使用,编辑(-:此链接未关闭\u投票抵制:-)将其+1用于基本内容,另一种方式可以直接使用,编辑(-:此链接未关闭\u投票抵制:-)