使用JCheckBox列过滤表

时间:2011-03-24 09:24:11

标签: java jtable filtering

我有一个有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”,...它会返回启用或禁用复选框的行...我猜它会处理它们的值真/假。

有没有办法在过滤表时忽略第一列?

1 个答案:

答案 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 - 要检查的值的索引。如果没有全部提供   价值评估