1 回答
TA贡献1810条经验 获得超5个赞
没有回答您的问题,但是您重新填充模型的逻辑过于复杂。
无需创建二维数组,因为您一次将一行数据添加到模型中。
此外,只需使用 Vector,因为 DefaultTableModel 无论如何都会将行数组转换为 Vector。
所以你的代码的基本结构更像是:
String[] colNames = {"#", "Name", "Surname", "Grades", "House", "Prefect"};
DefaultTableModel model = new DefaultTableModel(colNames, 0);
Validation.newStudent(db, stringName, stringSurname);
int maxval = Integer.parseInt(Validation.getNumberOfStudents(db));
for (int i = 0; i < maxval; i++)
{
Vector<String> row = new Vector<String>();
for (int j = 0; j < maxval; j++){
row.add( Integer.toString(i+1) );
row.add( Validation.listStudentNames(db).get(i) );
row.add( Validation.listStudentSurnames(db).get(i) );
...
}
System.out.println( row ); // make sure you actually add data to the model.
model.addRow(row);
}
teacherContentTable.setModel(model);
现在假设您实际将数据添加到模型中,表格将被更新,再次假设您对添加到框架中的 JTable 实例有正确的引用。
编辑:
上面的代码与您所说的用新模型更新 JTable 的问题无关。
可以用一行代码代替:
teacherContentTable.setModel( new DefaultTableModel(5, 5) );
您现在应该看到一个包含 5 行和 5 列的空 JTable。在担心从数据库中获取数据之前,您首先要让它工作。
添加回答
举报