在继续之前检查jtable中的重复数据

在我目前的项目中,我有一个包含4列的jtable。 我不希望在第二列中存储重复数据,因此我在将其存储到数据库之前检查jtable中的每一行。

这是我的代码:

String s=""; int row = table.getRowCount(); for (int i=0; i<row; i++) { s = table.getValueAt(i, 1).toString().trim(); if (name.getText().equals(s)) { JOptionPane.showMessageDialog(null, "data alreadyexist.","message",JOptionPane.PLAIN_MESSAGE); break; } else { add(); break; } } 

你不能遍历整个表格,因为我可以看到它。 您只检查第一行中的数据是否可用。 在此之后,该方法注意到第2行中可能存在相同的数据并且中断,因此您添加了1行并停止了,因为您逐行检查它,并且对于每个不匹配的行,您确实添加了新行,直到找到与要添加的行匹配的行

 String s = ""; boolean exists = false; for (int i=0; i 

现在你只需要检查你正在寻找的字符串是否是正确的方式,它应该工作

试试这个

 ArrayList contentList = new ArrayList(); int row = table.getRowCount(); for (int i=0; i 

尝试这个:

  int row = jTable1.getRowCount(); Object[] content = new Object[row]; for (int i = 0; i < row; i++) { content[i] = jTable1.getValueAt(i, 0); } Object value_to_find= 2000; boolean exist = Arrays.asList(content).contains(value_to_find); if (exist){ JOptionPane.showMessageDialog(null, "Value exist", "Duplicate", JOptionPane.ERROR_MESSAGE); } else { addRow(); } 

保存数组中的所有行,而不是使用Arrays.asList(content).contains(value_to_find)搜索value_to_find。