java - 使用多个 Jcheckbox 的 JTable 过滤器

标签 java swing jtable jcheckbox rowfilter

再次询问有关我的 Jtable 的问题!我用 JCheckBoxes 过滤结果!当我选中一个复选框时,结果正常,但是当我选中两个或多个复选框时,结果会出现并遵循最后一个 JCheckBox 的过滤器,而不是所有选中的 JCheckBox 的过滤器。重要的是,所有复选框都引用表格的一列,并且位于表格外部,仅用于过滤表格中的结果。

我的过滤功能是这样的

private void newFilter(String age){
    RowFilter<DefaultTableModel,Object> rf = null;
    try{
        rf = RowFilter.regexFilter("20");
        }catch(java.util.regex.PatternSyntaxException e){
        return;
    }
    sorter.setRowFilter(rf);
}

编辑:表中只有应该出现的结果!复选框位于 Jtable 外部,仅用于过滤器,例如,如果我选中表中的复选框 20 将仅显示年龄为 20 岁的人,但如果我检查表中的年龄 20 和年龄 40,则仅显示年龄为 20 岁的人。 40 岁,也有 20 岁!

最佳答案

The ckeckboxes are outside the JTable and are used only for filters…

您可以组合并应用 JTable 行过滤器,如下所示 herehere 。使用Action封装功能,如图 here 。让 Action 更新模型,监听 View 将更新自身作为响应。

附录:作为一个具体示例,更改 example cited 中的 JButtonJCheckBox

frame.add(new JCheckBox(new AbstractAction("Toggle filter")…

image

关于java - 使用多个 Jcheckbox 的 JTable 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21611142/

相关文章:

java - 在 J2EE 服务器中匹配两个不同应用程序之间的两个对象实例的最佳方法是什么?

java - 如何为我的应用程序设置菜单?

java - DropWizard 没有注册我的健康检查

java - AbstractTabelModel 将不会显示 JTable 列名称

java - JTable - 使标题之一在单击时表现不同

java - JTable 列未出现

java - 为什么 JTable 在 ChangeSelection 后不更新渲染器

java - 在java中替换字符串中的特殊字符

java - 为什么在将值设置到 JTable 时要扩展 AbstractTableModel?

java - 哪种删除 JTable 行方法更好?