我有一個連接到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