java - 如何限制 JTable 及其内部表模型的大小

标签 java swing size jtable limit

我有一个使用 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 方法,该方法将执行新数据的 addremove 旧的。

关于java - 如何限制 JTable 及其内部表模型的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4282258/

相关文章:

java - JXtreeTable 忽略树节点的 getValueAt

java - 将 JScrollBar/JScrollPane 添加到此 JTextPane 时遇到问题

c++ - 为什么 C++ 中的参数匹配会忽略数组大小?

java - 如何比较 Gremlin Java 查询中的两个时间戳列

java - 如何创建只接受实现 Iterable 的元素的方法

java - 如何在使用 CardLayout 切换后启动 JPanel

c - C 中数组的最大索引大小是否为 2048?

java - 在 weblogic 服务器上将 enforce-valid-basic-auth-credentials 设置为 false 会产生什么后果

java - 来自 @PathVariable Java Spring 的不完整文本

javascript - 随机大小的 JavaScript Canvas 矩形