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。在擔心從數據庫中獲取數據之前,您首先要讓它工作。
添加回答
舉報