我有一个使用DefaultTableModel作为其内部数据模型的JTable。它将从网络接收数据包并在JTable中显示数据包。现在我想限制数据模型大小,以便它只包含最新的数据包和最旧的数据包,但DefaultTableModel使用Vector类型的dataVector,它没有大小限制。 有人可以帮忙吗?谢谢!
答案 0 :(得分:3)
如果您始终在表格的顶部插入新行,则可以在执行此操作时轻松执行TableModel
检查,并手动删除:
model.insertRow(0,rowData);
while (model.getRowCount() > myMaxRowCount) {
model.removeRow(model.getRowCount()-1);
}
另一种选择是将此流程放入DefaultTableModel
(甚至AbstractTableModel
的扩展名中,这样您就可以放弃Vector
以获得更现代的东西了。模型可以包含您要维护的maxRowCount,然后您可以实现一个新的updateModel
方法,该方法将执行新数据的add
和旧数据的remove
。