问候,
我一直在理解DefaultTableModel将如何解决我的问题。 我有这个JTable,它已经使用JDBC - MySQL从我的数据查询数据。 我的角色是JTable的index0始终显示主键。 并且在末尾的二维对象数组中总会有一个空行,其中将检索单元格的数据。
截至目前,我在模型中包含了一个触发fireCellUpdated()的setValueAt方法。 它起作用但缺点是数据将显示在JTable上但在阵列上更改。 我怎么能解决这个问题?
非常感谢您的回复。
感谢。
答案 0 :(得分:4)
当我检查数组时,更改就在那里。但它不会显示在JTable上
您永远不应该直接更新阵列。在创建模型时,该数组用于填充DefaultTableModel中的数据。 DefaultTableModel将数据存储在Vector of Vector中,因此所有数据都将从Array复制到模型中。之后,所有更新必须直接完成到TableModel。
答案 1 :(得分:2)
如果我理解正确,您的数据模型包含不打算显示的其他信息。 DefaultTableModel
对此可能有点尴尬。或者,您可能需要考虑AbstractTableModel
,这样可以更轻松地将数据的某些部分公开给JTable
。文章How to Use Tables: Creating a Table Model和here中有一些示例。