我有一个有6列的JTable。第一列是JCheckBox列。我创建了一个搜索框来通过以下代码过滤表格:
String searchWord = searchTextField.getText();
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>( myTable.getModel() );
myTable.setRowSorter( sorter );
sorter.setRowFilter( RowFilter.regexFilter( searchWord );
问题是如果用户搜索“true”,“false”,“t”,“se”,...它会返回启用或禁用复选框的行...我猜它会处理它们的值真/假。
有没有办法在过滤表时忽略第一列?
答案 0 :(得分:1)
您可以告诉regexFilter您要检查哪些列。假设您的表中有五列,第一列是JCheckBox列,那么您可以使用以下命令忽略它:
sorter.setRowFilter( RowFilter.regexFilter( searchWord, 1, 2, 3, 4 ) );
来自RowFilter
的{{3}}:
<强> regexFilter 强>
public static <M,I> RowFilter<M,I> regexFilter(String regex, int... indices)
<强>参数:强>
正则表达式 - 要过滤的正则表达式
indices - 要检查的值的索引。如果没有全部提供 价值评估