【问题标题】:Adding rows to a JTable向 JTable 添加行
【发布时间】:2008-11-17 14:13:47
【问题描述】:

我们有一个简单的项目,我们从套接字读取数据,我们想用即将到来的数据填充一个表,但是我们找不到向尚未创建的 JTable 对象添加行的方法,我们只能了解如何在创建表时添加行。

是否可以将行动态添加到JTable,或者有更好的替代对象来处理这种显示数据的方式?

编辑:非常感谢您的回答。

他们三个看起来都很有前途,但我只能选择一个,我认为最好的是纪尧姆的。

【问题讨论】:

    标签: java swing


    【解决方案1】:

    您应该创建一个自定义TableModelJTable 实际上并不存储行,它总是将其委托给 TableModel。为了帮助您实现它,您应该使用AbstractTableModel。每次添加行时不要忘记致电fireTableRowsInserted()。如果添加很多行,为了获得更好的性能,请尝试批量更新并一次添加很多行。

    【讨论】:

      【解决方案2】:

      如果您使用 JTable 的默认表模型,那么您可以使用以下代码添加行

       if ( dest+1 < table.getRowCount()-1 )
          ( (DefaultTableModel) table.getModel() ).insertRow(dest+1, getValuesForNewRow());
        else
          ( (DefaultTableModel) table.getModel() ).addRow(getValuesForNewRow());
      

      【讨论】:

      • 最好在将 DefaultTableModel 传递给 JTable 构造函数之前保留它。然后你不需要触摸 JTable 或进行任何转换。
      【解决方案3】:

      一旦您开始在 JTable 中动态添加和删除元素,您确实需要开始使用 TableModel。

      有关详细信息,请参阅Java Tutorial

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-02
        • 1970-01-01
        • 2012-11-22
        • 2015-07-10
        • 2011-01-21
        相关资源
        最近更新 更多