从jTable获取行数据时遇到一些问题:
for (int i = 0; i < TB_Accounts.getRowCount(); i++) {
username = TB_Accounts.getModel().getValueAt(i, i);
password = TB_Accounts.getModel().getValueAt(i, 1);
if (username == null || password == null) {
continue;
}
System.out.println("userName : " + username);
System.out.println("password : " + password);
if (!username.toString().equalsIgnoreCase("") && !password.toString().equalsIgnoreCase((""))) {
accouts.add(new Account(username.toString(), password.toString()));
System.out.println("in :: userName : " + username);
System.out.println("in :: password : " + password);
}
}
问题是总是从表中获取除最后一行之外的所有数据,我不知道wht。
答案 0 :(得分:2)
乍一看循环没有错,但看起来像第二行可能是罪魁祸首:
...
username = TB_Accounts.getModel().getValueAt(i, i);
...
当你继续行并随后通过continue
调用导致循环跳过时,可能返回null,如果用户名或密码为null则会发生。改为:
...
username = TB_Accounts.getModel().getValueAt(i,0);
...