2016-01-09 238 views
0

我有一個使用SwingBits java庫爲每個列標題添加過濾選項的JTable。現在,除了列標題過濾器之外,我還通過在JTextField中輸入的文本過濾最後一列。將過濾器重新應用於已過濾的JTable視圖

問題是,一旦我使用列過濾器過濾jtable,並嘗試使用TextField過濾器,過濾將應用於原始表格而不是過濾視圖。我知道表模型包含原始表數據,那麼是否有解決此問題的解決方法?

回答

1

您需要使用「andFilter」將多個過濾器合併爲一個。

例如,看看Sorting and Filtering的Swing教程部分。您可以使用如下代碼修改演示,以過濾兩行中發現文本的行,而不僅僅是一行:

//rf = RowFilter.regexFilter(filterText.getText(), 1); 
List<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(2); 
filters.add(RowFilter.regexFilter(filterText.getText(), 0)); 
filters.add(RowFilter.regexFilter(filterText.getText(), 1)); 
rf = RowFilter.andFilter(filters); 
+0

它在我的情況下並不那麼簡單。因爲我使用SwingBits(這是一個外部庫)用於我的列標題過濾,所以它有自己的過濾機制,在研究源代碼後我仍然不太明白。我不知道如何將其與我的有效負載過濾器集成在一起。 – fsociety