如何限制 JTable 及其内部表模型的大小
我有一个使用 DefaultTableModel 作为其内部数据模型的 JTable。它将从网络接收数据包并将该数据包显示在 JTable 中。现在我想限制数据模型的大小,以便它只包含最新的数据包并丢弃最旧的数据包,但 DefaultTableModel 使用 Vector 类型的 dataVector,它没有大小限制。 有人可以帮忙吗?谢谢!
I have a JTable using DefaultTableModel as its internal data model. It will receive packet from network and show the packet in the JTable. Now i want to limit data model size so that it will only contain the newest packets and drop of the oldest, but the DefaultTableModel uses a dataVector of type Vector which has no size limit.
Could anybody please give some help? Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您总是在表顶部插入新行,那么您可以轻松地在执行此操作时对 TableModel 执行检查,然后手动删除:
另一种选择是将此过程放入以下扩展中:
DefaultTableModel
(甚至是AbstractTableModel
,它可以让您放弃Vector
而采用更现代的东西)。该模型可以保存您想要维护的 maxRowCount,然后您可以实现一个新的 updateModel 方法,该方法将执行新数据的添加和删除操作/code> 旧的。If you always insert new rows at the top of the table, you could easily perform a check on the
TableModel
when you do so, and remove manually:Another option would be to put this process into an extension of
DefaultTableModel
(or evenAbstractTableModel
, which would allow you to ditch theVector
for something a bit more modern). The Model could hold the maxRowCount that you want to maintain and then you can implement a newupdateModel
method that will do theadd
of the new data and theremove
of the old.