我遇到了二维数组JTable刷新问题。 JTable值会发生变化,但只有当我鼠标点击JTable中的每一行时,它们才会刷新。有没有办法正常刷新JTable,或者重新加载JTable,还是需要特定的表模型?
JTable像这样填充:
while(rs.next()){
rows[row][col] = rs.getString("Level"); col++;
rows[row][col] = rs.getString("study"); col++;
rows[row][col] = rs.getString("1pn"); col++;
rows[row][col] = rs.getString("2pn"); col++;
rows[row][col] = rs.getString("1pk"); col++;
rows[row][col] = rs.getString("2pk"); col++;
rows[row][col] = rs.getString("summ"); col++;
rows[row][col] = rs.getString("teori"); col++;
rows[row][col] = rs.getString("p-d"); col++;
rows[row][col] = rs.getString("ind"); col++;
rows[row][col] = rs.getString("gat"); col++;
rows[row][col] = rs.getString("pav"); col++;
col = 0;
row++;
在组合框更改时更改了JTable:
while(rs.next()){
rows[row][col] = rs.getString("Level"); col++;
rows[row][col] = rs.getString("study"); col++;
rows[row][col] = rs.getString("1pn"); col++;
rows[row][col] = rs.getString("2pn"); col++;
rows[row][col] = rs.getString("1pk"); col++;
rows[row][col] = rs.getString("2pk"); col++;
rows[row][col] = rs.getString("kopa"); col++;
rows[row][col] = rs.getString("teori"); col++;
rows[row][col] = rs.getString("p-d"); col++;
rows[row][col] = rs.getString("ind"); col++;
rows[row][col] = rs.getString("gat"); col++;
rows[row][col] = rs.getString("pav"); col++;
col = 0;
row++;
}
答案 0 :(得分:2)
我遇到了二维数组JTable刷新问题
这句话毫无意义。 JTable使用TableModel来存储数据。也许您有一个使用二维数组来保存数据的自定义TableModel。您永远不应该直接更新数据存储。
首先,编辑单元格更容易,
不,不是。如果要更改TableModel中的数据,则使用TableModel的setValueAt(...)
方法。然后TableModel将通知表数据已更改,表将重新绘制单元格。
我在DefaultTableModel中无法做到的很多事情
我对此表示怀疑。 DefaultTableModel是完全动态的。你可以:
在你的情况下,你正在做一个新的查询,所以我建议:
setRowCount(0)
方法清除数据。addRow(...)
方法添加每一行数据。DefaultTableModel并不完美,但在您了解如何使用TableModel之前,它是一个很好的起点。