我有一个连接到sqlite的JTable。 db表看起来是这样的:java JTable如何跟踪行
resource_id #primary_key, file, type
我已经实现了从数据库中添加的行,但问题是我需要知道资源ID时JTable中某一行被选中(而不是索引)。有没有办法添加具有唯一标识的行,而不是基于索引(或类似的东西)?
当前的解决方案将资源ID添加为表列,但这并不能完全解决问题。
我有一个连接到sqlite的JTable。 db表看起来是这样的:java JTable如何跟踪行
resource_id #primary_key, file, type
我已经实现了从数据库中添加的行,但问题是我需要知道资源ID时JTable中某一行被选中(而不是索引)。有没有办法添加具有唯一标识的行,而不是基于索引(或类似的东西)?
当前的解决方案将资源ID添加为表列,但这并不能完全解决问题。
创建一个包含表格数据的类别TableData
。使用自定义TableModel
并将JTable的数据放入Vector<TableData>
。
您可能会发现在您的TableModel
中创建一个方法(如addRow(TableData data)
),该方法处理表中的数据并将数据添加到Vector
。
在重写的方法public removeRow(int row)
你将需要删除的矢量数据,其中列可以作为指标。
用于在JTable中显示数据的重写方法public Object getValueAt(int row, int col)
将只需要从Vector<TableData>
中检索数据。您也可以将此方法中不属于TableData
的其他列的逻辑放置。
不要忘记调用fireTableRowsUpdated(row,col)和fireTableCellUpdated(row,col)哪里适用。
有关进一步的参考,如何处理在JTable
的选择,你可以参考this tutorial
_The目前的解决方案将资源ID作为一个表列,但是这并不解决问题completely._为什么它不解决问题完全? – Sandro 2012-04-09 20:48:15
将'resource_id'保留在'TableModel'中,只是不显示它。另外,请编辑您的问题以包含您当前的方法[sscce](http://sscce.org/)。 – trashgod 2012-04-09 20:48:48