再次询问有关我的 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
行过滤器,如下所示 here和 here 。使用Action
封装功能,如图 here 。让 Action
更新模型,监听 View 将更新自身作为响应。
附录:作为一个具体示例,更改 example cited 中的 JButton
到 JCheckBox
。
frame.add(new JCheckBox(new AbstractAction("Toggle filter")…
关于java - 使用多个 Jcheckbox 的 JTable 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21611142/