gpt4 book ai didi

java - 过滤表模型

转载 作者:行者123 更新时间:2023-12-01 18:05:17 25 4
gpt4 key购买 nike

我的应用程序中有 2 个复选框。这些复选框是相互独立的,即可以选择一个,也可以同时选择两个,或者都不选择。

复选框过滤表模型,表每 10 秒刷新一次。

每次刷新之前,我都会获取每个复选框的状态,如下所示:

checkM = checkboxM.isSelected();
checkI = checkboxI.isSelected();

刷新发生后,我尝试将复选框设置为如下内容:

checkboxM.setSelected(checkM);
checkboxI.setSelected(checkI);

然后是我的 if 语句,以找出选择了哪些框,这就是问题所在,因为我似乎无法弄清楚如何应用过滤器 a) 两个复选框都被选中,因此显示包含内容的所有行“A”和“B” b) 选中其中一个复选框,仅显示“A”或“B”或不显示任何行

if ((checkM = false) || (checkI = false)){
newFilter("",4);
}

else{
newFilter("A",4);
newFilter("B",4);


}



//this is my filter

private void newFilter(String x, Integer n) {
sorterDG = new TableRowSorter (modelImbalanceTable);
sorterDG.setRowFilter(RowFilter.regexFilter(x,n));
tableDG.setRowSorter(sorterDG);
tableDG.tableChanged(new TableModelEvent(tableDG.getModel())) ;
tableDG.repaint();
}

最佳答案

我不太明白你的逻辑。但如果你的逻辑是正确的,那么你的问题只是一个简单的拼写错误。您在可能想使用 == 的地方使用了 == 为 checkM 和 checkI 分配新值,同时计算设置值。 == 将比较该值。除此之外,比较 boolean 值来获取 boolean 值并没有多大帮助。只需按原样使用 boolean 值即可。

但是,这意味着您当前始终执行 else 路径,而不是 if 路径。在您的 if 路径中,您遇到了下一个问题。您不会累积过滤器,但首先设置过滤器A,然后设置B。因此,在运行时,无论您检查了什么,您最终都会过滤 B

你的意思可能是这样的

if (checkM && checkI) {
newFilter("A|B", 4);
} else if (checkM) {
newFilter("A", 4);
} else if (checkI) {
newFilter("B", 4);
} else {
newFilter("", 4);
}

关于java - 过滤表模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36901382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com