如何选择JTable中最后插入的行?

时间:2013-01-04 10:33:31

标签: java swing jtable

我有一个带有两列的JTable和一个使用一个与哈希映射一起工作的类的表模型。此映射的元素是表行。

每次添加新元素时,我都需要选择元素,而不管任何排序。现在,我尝试使用以下方法:

int lastRow = table.convertRowIndexToView(tableModel.getRowCount() - 1);
table.setRowSelectionInterval(lastRow, lastRow);

问题是,这只有在我以排序的方式添加数据时才有效(例如“A”,“B”,“C”,甚至不是因为“D”,例如,放在A之前一旦添加)。有人能告诉我如何解决这个问题吗?

2 个答案:

答案 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,简短,可运行,可编辑,仅JFrameJTable in JScrollPane以及从addRow

点燃的新swing.Timer