2016-12-15 61 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

相关问题