gpt4 book ai didi

java - 如何在我的 JTable 中隐藏一行?

转载 作者:行者123 更新时间:2023-11-30 07:27:37 25 4
gpt4 key购买 nike

我在 Windows 7 Pro 上使用带有 JDK 1.7 的 Eclipse Indigo SR1。我编写了一个基于 Swing 的桌面应用程序。

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

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

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

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

那么,这是我的问题:如何使行在 JTable 中不可见?我不能使用表模型,因为它指向包含“所有”数据的 vect。

我试过table cell renderer,好像可以设置cell的颜色,但是不能设置不可见,也不能修改大小。

我试过另一种方法:如果r是行索引,我希望该行不可见,我写table.setRowHeight(r,0),但是这条指令抛出异常,高度不能设置为零。

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

有人有想法吗?

提前致谢,威廉

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

嗯,也许这是个好主意,但坦白说我无法理解...

最佳答案

使用 TableRowSorter - 这是:

An implementation of RowSorter that provides sorting and filtering using a TableModel. ..

参见 How to Use Tables尤其是 Sorting and Filtering了解更多信息。

关于java - 如何在我的 JTable 中隐藏一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9589347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com