我有一个带有两列的JTable和一个使用一个与哈希映射一起工作的类的表模型。此映射的元素是表行。
每次添加新元素时,我都需要选择元素,而不管任何排序。现在,我尝试使用以下方法:
int lastRow = table.convertRowIndexToView(tableModel.getRowCount() - 1);
table.setRowSelectionInterval(lastRow, lastRow);
问题是,这只有在我以排序的方式添加数据时才有效(例如“A”,“B”,“C”,甚至不是因为“D”,例如,放在A之前一旦添加)。有人能告诉我如何解决这个问题吗?
答案 0 :(得分:4)
问题最有可能发生在TableModel
,因为您发布的代码很好。您提到使用HashMap
来存储TableModel
的数据。 HashMap
的问题在于它没有任何排序。向其添加元素可能会改变您在地图中获取元素的顺序。
最好使用尊重订购的数据结构。
答案 1 :(得分:2)
更好的方法是使用prepareRendered for hightlighting max row index from XxxTableModel
JTable
could be Sorted and Filtered
,然后在JTables
视图
取决于ListSelectionMode,但默认情况下您可以
table.setRowSelectionInterval(lastRow, lastRow);
table.setColumnSelectionInterval(columnMinIndex, columnMaxIndex);
更快地发布SSCCE,简短,可运行,可编辑,仅JFrame
,JTable in JScrollPane
以及从addRow
swing.Timer