【问题标题】:Filtering table with a JCheckBox column使用 JCheckBox 列过滤表
【发布时间】:2011-07-21 23:34:51
【问题描述】:

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

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

【问题讨论】:

    标签: java jtable filtering


    【解决方案1】:

    您可以告诉 regexFilter 您要检查哪些列。假设您的表中有五列,第一列是 JCheckBox 列,那么您可以使用以下命令忽略它:

    sorter.setRowFilter( RowFilter.regexFilter( searchWord, 1, 2, 3, 4 ) );
    

    docsRowFilter

    正则表达式过滤器

    public static &lt;M,I&gt; RowFilter&lt;M,I&gt; regexFilter(String regex, int... indices)

    参数:

    regex - 要过滤的正则表达式

    indices - 要检查的值的索引。如果没有全部提供 值被评估

    【讨论】:

    • 正要告诉他同样的事情;) (+1)
    • @Thomas:我也打算说同样的话 :)。在发送我的问题后,我查看了 API 并在检查此答案之前找到了它。起初我不明白什么索引,但是当我尝试它时,它起作用了。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 2017-06-07
    • 2017-09-24
    • 2016-12-09
    相关资源
    最近更新 更多