2016-12-15 59 views
1

我將RowFilter.regexFilter(...)應用於我的表格,並且Integer列上的過濾功能無法正常工作。我認爲在RowFilter.RegexFilter.include()中,要評估的Integer值用逗號轉換爲StringRowFilter RegexFilter - 如何避免整數被逗號轉換爲字符串?

18 -> 18 
4820 -> 4,820 
85898 -> 85,898 

不過,我想這是一個普通的Integer -STRING沒有任何逗號。 我設置的RowFilter我的表是這樣的:

String myfilterString = "^\Q46\E"; // integer value should start with "46" 
RowFilter<Object, Object> patternFilter = RowFilter.regexFilter("(?i)" + myFilterString, columnIndex); 
myTable.setRowFilter(patternFilter); 

我怎樣才能改變這裏的行爲?

+0

請顯示這樣的代碼 – ItamarG3

+0

這是很多代碼,我將添加我在一分鐘內爲表設置RowFilter的部分。 – sfandler

+0

你可以只是把字符串「展示」之前更改格式(如我的回答解釋)(我不清楚究竟對你怎麼說到做到這一點) – ItamarG3

回答

2

如果您在表中存儲整數數據,則正則表達式將在整數值上工作。

整型由渲染器格式化的方式對TableModel中的實際數據沒有影響。

因此,請確保您的TableModel保存整數值,並且您已覆蓋TableModel的getColumnClass(...)方法以返回該列的Integer.class

+0

我的TableModel爲模型的硬編碼值返回Integer.class爲列,但整數格式不正確。你有什麼其他的建議? :/ – sfandler

+0

@sfandler準備,在添加之前格式化數據(對所有編程的要求和標準,包括SQL)到XxxTableModel,可以選擇將原始數據和格式化數據保存在另一列中,可以從原始數據中刪除列JTable中視圖(THS方法只是OT隱藏列,數據仍然在模型中,列可以被再次添加到JTable中查看),瞭解model_to_view – mKorbel

+0

實現基本@sfandler我沒有看到任何格式的字符,當我使用的需要整數值。幾個小時前你問過你發佈了證明問題的'SSCCE'/[mcve]。 – camickr

相關問題