2011-04-06 45 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