我有一个使用 DefaultTableModel 作为其内部数据模型的 JTable。它将从网络接收数据包并将数据包显示在 JTable 中。现在我想限制数据模型的大小,以便它只包含最新的数据包和最旧的数据包,但 DefaultTableModel 使用 Vector 类型的 dataVector,它没有大小限制。 有人可以帮忙吗?谢谢!
最佳答案
如果您总是在表的顶部插入新行,您可以在执行此操作时轻松地对 TableModel
执行检查,然后手动删除:
model.insertRow(0,rowData);
while (model.getRowCount() > myMaxRowCount) {
model.removeRow(model.getRowCount()-1);
}
另一种选择是将此过程放入 DefaultTableModel
的扩展中(甚至是 AbstractTableModel
,这将允许您放弃 Vector
一些更现代的东西)。该模型可以保存您要维护的 maxRowCount,然后您可以实现一个新的 updateModel
方法,该方法将执行新数据的 add
和 remove
旧的。
关于java - 如何限制 JTable 及其内部表模型的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4282258/