DefaultTablemodel 如果行具有特定值则删除行 JAVA

DefaultTablemodel delete rows if the row has a specific value JAVA

如果第一行 String "Windows" 我想删除行,但是效果不佳,如果 String 值为 "Windows" 它会删除行 我的代码。任何帮助将不胜感激。 :)

                                    for (int i = 0; i < model.getRowCount(); i++) {
                                        if ((String) model.getValueAt(i, 0) != "Windows") {
                                            model.removeRow(i);
                                        }
                                    }

要比较字符串,您可以直接使用 equals

请记住,删除行会减小模型的大小,您可以控制在删除行或不删除行时减去迭代次数,而不是进行所有比较

for (int i = 0; i < model.getRowCount(); i++) { 
   if (!model.getValueAt(i, 0).equals("Windows")){

   model.removeRow(i);
   i-=1;  // 
  }

你可以这样使用

if (!model.getValueAt(i, 0).equals("") && model.getValueAt(i, 0).equalsIgnoreCase("Windows"))
{
 model.removeRow(i);
}

对于字符串比较,我们总是倾向于使用等于 method.If 你希望你可以进行空检查,例如 model.getValueAt(i, 0)!=null.

它有效,但我有很多行它只删除一行,如果值不等于我想删除所有值,我必须单击一棵树 "Windows" Picture