我有一张桌子。在第一列。我有学生的名字,比如“Esfandyar Talebi”和“Arash Nouri”;行数可以更改。 只有2行从4行填充。
我写的代码:
List<String> professorsName = new ArrayList<String>();
for(int i = 0; i < InformationTable.getRowCount(); i++) {
professorsName.add((String) InformationTable.getValueAt(i, 0));
System.out.println(professorsName.toString());
}
但这是输出:
[Esfandyar Talebi]
[Esfandyar Talebi,Arash Nouri]
[Esfandyar Talebi,Arash Nouri,null]
[Esfandyar Talebi,Arash Nouri,null,null]
[Esfandyar Talebi,Arash Nouri,null,null,null]
[Esfandyar Talebi,Arash Nouri,null,null,null,null]
空
答案 0 :(得分:1)
显然,InformationTable.getValueAt(i, 0)
对null
的某些值返回i
。你必须看看你的TableModel
答案 1 :(得分:1)
InformationTable中可能有6行。您可能首先必须检查单元格中是否填充了名称:
List<String> professorsNames = new ArrayList<String>();
for(int i = 0; i < InformationTable.getRowCount(); i++) {
String name = (String) InformationTable.getValueAt(i, 0);
if (name != null && name.trim().length() != 0) {
professorsNames.add(name);
System.out.println("Adding: " + name);
} else {
System.out.println("Refusing: " + name);
}
}
System.out.println("Found: " + professorsNames.toString());
答案 2 :(得分:1)
你发布的循环没有什么奇怪的...它运行的次数与InformationTable.getRowCount()方法返回的值一样多,看起来是6。所以问题可能出在InformationTable类上,如果需要进一步的帮助,可能需要发布它。