2011-04-06 47 views
7

我有一个JTable,我想从JTextfield做一个过滤器,但只过滤基于一列的结果,而不是搜索所有列。过滤JTable只有一个列

我有我的JTable我可以过滤,但我的过滤器将过滤和搜索我想将它限制在一个列的表的每一列

能不能做到?

回答

12

听文本框文档中的更改,并设置相应的RowFilter限于列要筛选:

// on document change 
RowFilter rowFilter = RowFilter.regexFilter(textField.getText(), myColumn); 
table.getRowSorter().setRowFilter(rowFilter); 

(类型演员和防范ommitted空的文本框)

+0

非常感谢你,这已经做了我想要解决的问题解决了 – CMP 2011-04-08 09:50:43

+0

很想投票把我不是人低投票尚:(:(:(:(但是再次感谢 – CMP 2011-04-08 09:51:09

+0

@ user692808你可以接受答案,不是吗?将增加您的声誉以及我的:-) – kleopatra 2011-04-08 10:51:58

1

在后台保留所有行(或支持数据)的主副本。

搜索时,从文本字段获取搜索条件,并通过仅添加符合条件的项目来重建表模型。如果文本字段为空,则添加所有行。

+0

好(虽然不是微不足道)为1.6,不是从1.6开始:我的一般规则是总是使用任何框架提供的所有支持,其余的已经够用了;-) – kleopatra 2011-04-06 12:01:37