1 回答

TA貢獻1810條經(jīng)驗 獲得超5個贊
沒有回答您的問題,但是您重新填充模型的邏輯過于復(fù)雜。
無需創(chuàng)建二維數(shù)組,因為您一次將一行數(shù)據(jù)添加到模型中。
此外,只需使用 Vector,因為 DefaultTableModel 無論如何都會將行數(shù)組轉(zhuǎn)換為 Vector。
所以你的代碼的基本結(jié)構(gòu)更像是:
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);
現(xiàn)在假設(shè)您實際將數(shù)據(jù)添加到模型中,表格將被更新,再次假設(shè)您對添加到框架中的 JTable 實例有正確的引用。
編輯:
上面的代碼與您所說的用新模型更新 JTable 的問題無關(guān)。
可以用一行代碼代替:
teacherContentTable.setModel( new DefaultTableModel(5, 5) );
您現(xiàn)在應(yīng)該看到一個包含 5 行和 5 列的空 JTable。在擔(dān)心從數(shù)據(jù)庫中獲取數(shù)據(jù)之前,您首先要讓它工作。
添加回答
舉報